update debug providers to match new RawVec capacity field
This commit is contained in:
parent
6a2f44e9d8
commit
81997094e6
@ -154,7 +154,11 @@ class StdVecDequeProvider(printer_base):
|
|||||||
self._valobj = valobj
|
self._valobj = valobj
|
||||||
self._head = int(valobj["head"])
|
self._head = int(valobj["head"])
|
||||||
self._size = int(valobj["len"])
|
self._size = int(valobj["len"])
|
||||||
self._cap = int(valobj["buf"]["cap"])
|
# BACKCOMPAT: rust 1.75
|
||||||
|
cap = valobj["buf"]["cap"]
|
||||||
|
if cap.type.code != gdb.TYPE_CODE_INT:
|
||||||
|
cap = cap[ZERO_FIELD]
|
||||||
|
self._cap = int(cap)
|
||||||
self._data_ptr = unwrap_unique_or_non_null(valobj["buf"]["ptr"])
|
self._data_ptr = unwrap_unique_or_non_null(valobj["buf"]["ptr"])
|
||||||
|
|
||||||
def to_string(self):
|
def to_string(self):
|
||||||
|
@ -267,7 +267,8 @@ class StdVecSyntheticProvider:
|
|||||||
"""Pretty-printer for alloc::vec::Vec<T>
|
"""Pretty-printer for alloc::vec::Vec<T>
|
||||||
|
|
||||||
struct Vec<T> { buf: RawVec<T>, len: usize }
|
struct Vec<T> { buf: RawVec<T>, len: usize }
|
||||||
struct RawVec<T> { ptr: Unique<T>, cap: usize, ... }
|
rust 1.75: struct RawVec<T> { ptr: Unique<T>, cap: usize, ... }
|
||||||
|
rust 1.76: struct RawVec<T> { ptr: Unique<T>, cap: Cap(usize), ... }
|
||||||
rust 1.31.1: struct Unique<T: ?Sized> { pointer: NonZero<*const T>, ... }
|
rust 1.31.1: struct Unique<T: ?Sized> { pointer: NonZero<*const T>, ... }
|
||||||
rust 1.33.0: struct Unique<T: ?Sized> { pointer: *const T, ... }
|
rust 1.33.0: struct Unique<T: ?Sized> { pointer: *const T, ... }
|
||||||
rust 1.62.0: struct Unique<T: ?Sized> { pointer: NonNull<T>, ... }
|
rust 1.62.0: struct Unique<T: ?Sized> { pointer: NonNull<T>, ... }
|
||||||
@ -390,7 +391,10 @@ class StdVecDequeSyntheticProvider:
|
|||||||
self.head = self.valobj.GetChildMemberWithName("head").GetValueAsUnsigned()
|
self.head = self.valobj.GetChildMemberWithName("head").GetValueAsUnsigned()
|
||||||
self.size = self.valobj.GetChildMemberWithName("len").GetValueAsUnsigned()
|
self.size = self.valobj.GetChildMemberWithName("len").GetValueAsUnsigned()
|
||||||
self.buf = self.valobj.GetChildMemberWithName("buf")
|
self.buf = self.valobj.GetChildMemberWithName("buf")
|
||||||
self.cap = self.buf.GetChildMemberWithName("cap").GetValueAsUnsigned()
|
cap = self.buf.GetChildMemberWithName("cap")
|
||||||
|
if cap.GetType().num_fields == 1:
|
||||||
|
cap = cap.GetChildAtIndex(0)
|
||||||
|
self.cap = cap.GetValueAsUnsigned()
|
||||||
|
|
||||||
self.data_ptr = unwrap_unique_or_non_null(self.buf.GetChildMemberWithName("ptr"))
|
self.data_ptr = unwrap_unique_or_non_null(self.buf.GetChildMemberWithName("ptr"))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user