Index: examples/synthetic/gnu_libstdcpp.py =================================================================== --- examples/synthetic/gnu_libstdcpp.py +++ examples/synthetic/gnu_libstdcpp.py @@ -15,50 +15,14 @@ self.count = None logger >> "Providing synthetic children for a map named " + str(valobj.GetName()) - def next_node(self,node): - logger = lldb.formatters.Logger.Logger() - return node.GetChildMemberWithName('_M_next') - - def is_valid(self,node): - logger = lldb.formatters.Logger.Logger() - return self.value(self.next_node(node)) != self.node_address - - def value(self,node): - logger = lldb.formatters.Logger.Logger() - return node.GetValueAsUnsigned() - - # Floyd's cycle-finding algorithm - # try to detect if this list has a loop - def has_loop(self): - global _list_uses_loop_detector - logger = lldb.formatters.Logger.Logger() - if _list_uses_loop_detector == False: - logger >> "Asked not to use loop detection" - return False - slow = self.next - fast1 = self.next - fast2 = self.next - while self.is_valid(slow): - slow_value = self.value(slow) - fast1 = self.next_node(fast2) - fast2 = self.next_node(fast1) - if self.value(fast1) == slow_value or self.value(fast2) == slow_value: - return True - slow = self.next_node(slow) - return False - def num_children(self): - global _list_capping_size logger = lldb.formatters.Logger.Logger() if self.count == None: self.count = self.num_children_impl() - if self.count > _list_capping_size: - self.count = _list_capping_size return self.count def num_children_impl(self): logger = lldb.formatters.Logger.Logger() - global _list_capping_size try: next_val = self.next.GetValueAsUnsigned(0) prev_val = self.prev.GetValueAsUnsigned(0) @@ -69,15 +33,11 @@ return 0 if next_val == prev_val: return 1 - if self.has_loop(): - return 0 size = 2 current = self.next while current.GetChildMemberWithName('_M_next').GetValueAsUnsigned(0) != self.node_address: size = size + 1 current = current.GetChildMemberWithName('_M_next') - if size > _list_capping_size: - return _list_capping_size return (size - 1) except: return 0; @@ -346,12 +306,9 @@ pass def num_children(self): - global _map_capping_size logger = lldb.formatters.Logger.Logger() if self.count == None: self.count = self.num_children_impl() - if self.count > _map_capping_size: - self.count = _map_capping_size return self.count def num_children_impl(self): @@ -444,7 +401,3 @@ def has_children(self): return True - -_map_capping_size = 255 -_list_capping_size = 255 -_list_uses_loop_detector = True