X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fetc%2Flldb_providers.py;h=697ad4293c3f0bd1fc5a7ca3146cee1659e5a47e;hb=8a09420ac48658cad726e0a6997687ceac4151e3;hp=8a9927e7d96d7d26b134bd32160ce106b9b37940;hpb=2e44c17c12cec45b6a682b1e53a04ac5b5fcc9d2;p=rust.git diff --git a/src/etc/lldb_providers.py b/src/etc/lldb_providers.py index 8a9927e7d96..697ad4293c3 100644 --- a/src/etc/lldb_providers.py +++ b/src/etc/lldb_providers.py @@ -356,7 +356,7 @@ class StdSliceSyntheticProvider: class StdVecDequeSyntheticProvider: """Pretty-printer for alloc::collections::vec_deque::VecDeque - struct VecDeque { tail: usize, head: usize, buf: RawVec } + struct VecDeque { head: usize, len: usize, buf: RawVec } """ def __init__(self, valobj, dict): @@ -373,7 +373,7 @@ class StdVecDequeSyntheticProvider: def get_child_index(self, name): # type: (str) -> int index = name.lstrip('[').rstrip(']') - if index.isdigit() and self.tail <= index and (self.tail + index) % self.cap < self.head: + if index.isdigit() and int(index) < self.size: return int(index) else: return -1 @@ -381,20 +381,16 @@ class StdVecDequeSyntheticProvider: def get_child_at_index(self, index): # type: (int) -> SBValue start = self.data_ptr.GetValueAsUnsigned() - address = start + ((index + self.tail) % self.cap) * self.element_type_size + address = start + ((index + self.head) % self.cap) * self.element_type_size element = self.data_ptr.CreateValueFromAddress("[%s]" % index, address, self.element_type) return element def update(self): # type: () -> None self.head = self.valobj.GetChildMemberWithName("head").GetValueAsUnsigned() - self.tail = self.valobj.GetChildMemberWithName("tail").GetValueAsUnsigned() + self.size = self.valobj.GetChildMemberWithName("len").GetValueAsUnsigned() self.buf = self.valobj.GetChildMemberWithName("buf") self.cap = self.buf.GetChildMemberWithName("cap").GetValueAsUnsigned() - if self.head >= self.tail: - self.size = self.head - self.tail - else: - self.size = self.cap + self.head - self.tail self.data_ptr = unwrap_unique_or_non_null(self.buf.GetChildMemberWithName("ptr"))