]> git.lizzy.rs Git - rust.git/blobdiff - src/etc/lldb_providers.py
Auto merge of #105008 - Dylan-DPC:rollup-wcd19yu, r=Dylan-DPC
[rust.git] / src / etc / lldb_providers.py
index 8a9927e7d96d7d26b134bd32160ce106b9b37940..697ad4293c3f0bd1fc5a7ca3146cee1659e5a47e 100644 (file)
@@ -356,7 +356,7 @@ class StdSliceSyntheticProvider:
 class StdVecDequeSyntheticProvider:
     """Pretty-printer for alloc::collections::vec_deque::VecDeque<T>
 
-    struct VecDeque<T> { tail: usize, head: usize, buf: RawVec<T> }
+    struct VecDeque<T> { head: usize, len: usize, buf: RawVec<T> }
     """
 
     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"))