Lines Matching refs:self
24 def __init__(self, valobj, dict): argument
25 self.valobj = valobj
27 def update(self): argument
29 self.payload = self.valobj.GetChildMemberWithName('_M_payload')
30 self.value = self.payload.GetChildMemberWithName('_M_payload')
31 … self.has_value = self.payload.GetChildMemberWithName('_M_engaged').GetValueAsUnsigned(0) != 0
33 self.has_value = False
37 def num_children(self): argument
38 return 1 if self.has_value else 0
40 def get_child_index(self, name): argument
43 def get_child_at_index(self, index): argument
45 possible_value = self.value.GetChildMemberWithName('_M_value')
48 return self.value.Clone('Value')
55 def __init__(self, valobj, dict): argument
56 self.valobj = valobj
57 self.count = None
58 self.kind = self.get_object_kind(valobj)
60 def get_object_kind(self, valobj): argument
64 def extract_type(self): argument
65 type = self.valobj.GetType()
70 template_arg_num = 4 if self.kind == "map" else 3
75 def update(self): argument
78 self.count = None
80 self.head = self.valobj.GetChildMemberWithName('_M_h')
81 self.before_begin = self.head.GetChildMemberWithName('_M_before_begin')
82 self.next = self.before_begin.GetChildMemberWithName('_M_nxt')
83 self.data_type = self.extract_type()
84 self.skip_size = self.next.GetType().GetByteSize()
85 self.data_size = self.data_type.GetByteSize()
86 if (not self.data_type.IsValid()) or (not self.next.IsValid()):
87 self.count = 0
89 self.count = 0
92 def get_child_index(self, name): argument
98 def get_child_at_index(self, index): argument
103 if index >= self.num_children():
107 current = self.next
111 … return current.CreateChildAtOffset( '[' + str(index) + ']', self.skip_size, self.data_type)
117 def num_children(self): argument
118 if self.count is None:
119 self.count = self.num_children_impl()
120 return self.count
122 def num_children_impl(self): argument
125 count = self.head.GetChildMemberWithName('_M_element_count').GetValueAsUnsigned(0)
133 def __init__(self, valobj, dict, has_prev): argument
140 self.valobj = valobj
141 self.count = None
142 self.has_prev = has_prev
143 self.list_capping_size = self.valobj.GetTarget().GetMaximumNumberOfChildrenToDisplay()
147 def next_node(self, node): argument
151 def is_valid(self, node): argument
153 valid = self.value(self.next_node(node)) != self.get_end_of_list_address()
155 logger >> "%s is valid" % str(self.valobj.GetName())
160 def value(self, node): argument
164 str(self.valobj.GetName()), value)
169 def has_loop(self): argument
175 slow = self.next
176 fast1 = self.next
177 fast2 = self.next
178 while self.is_valid(slow):
179 slow_value = self.value(slow)
180 fast1 = self.next_node(fast2)
181 fast2 = self.next_node(fast1)
182 if self.value(fast1) == slow_value or self.value(
185 slow = self.next_node(slow)
188 def num_children(self): argument
190 if self.count is None:
192 count_child = self.node.GetChildMemberWithName('_M_data')
194 self.count = count_child.GetValueAsUnsigned(0)
195 if self.count is None:
196 self.count = self.num_children_impl()
197 return self.count
199 def num_children_impl(self): argument
204 next_val = self.next.GetValueAsUnsigned(0)
207 if self.has_loop():
209 if self.has_prev:
210 prev_val = self.prev.GetValueAsUnsigned(0)
213 if next_val == self.node_address:
218 current = self.next
220 '_M_next').GetValueAsUnsigned(0) != self.get_end_of_list_address():
225 if size >= self.list_capping_size:
233 def get_child_index(self, name): argument
240 def get_child_at_index(self, index): argument
245 if index >= self.num_children():
249 current = self.next
257 (2 if self.has_prev else 1) * current.GetType().GetByteSize(),
258 self.data_type)
262 def extract_type(self): argument
264 list_type = self.valobj.GetType().GetUnqualifiedType()
271 def update(self): argument
275 self.count = None
277 self.impl = self.valobj.GetChildMemberWithName('_M_impl')
278 self.data_type = self.extract_type()
279 if (not self.data_type.IsValid()) or (not self.impl.IsValid()):
280 self.count = 0
281 elif not self.updateNodes():
282 self.count = 0
284 self.data_size = self.data_type.GetByteSize()
286 self.count = 0
294 def updateNodes(self): argument
297 def has_children(self): argument
304 def get_end_of_list_address(self): argument
310 def __init__(self, valobj, dict): argument
314 def updateNodes(self): argument
315 self.node = self.impl.GetChildMemberWithName('_M_head')
316 self.next = self.node.GetChildMemberWithName('_M_next')
317 if (not self.node.IsValid()) or (not self.next.IsValid()):
321 def get_end_of_list_address(self): argument
327 def __init__(self, valobj, dict): argument
331 def updateNodes(self): argument
332 self.node_address = self.valobj.AddressOf().GetValueAsUnsigned(0)
333 self.node = self.impl.GetChildMemberWithName('_M_node')
334 self.prev = self.node.GetChildMemberWithName('_M_prev')
335 self.next = self.node.GetChildMemberWithName('_M_next')
336 …if self.node_address == 0 or (not self.node.IsValid()) or (not self.next.IsValid()) or (not self.p…
340 def get_end_of_list_address(self): argument
341 return self.node_address
348 def __init__(self, valobj): argument
349 self.valobj = valobj
350 self.count = None
352 def num_children(self): argument
353 if self.count is None:
354 self.count = self.num_children_impl()
355 return self.count
357 def num_children_impl(self): argument
359 start_val = self.start.GetValueAsUnsigned(0)
360 finish_val = self.finish.GetValueAsUnsigned(0)
361 end_val = self.end.GetValueAsUnsigned(0)
384 if (num_children % self.data_size) != 0:
387 num_children = num_children // self.data_size
392 def get_child_at_index(self, index): argument
397 if index >= self.num_children():
400 offset = index * self.data_size
401 return self.start.CreateChildAtOffset(
402 '[' + str(index) + ']', offset, self.data_type)
406 def update(self): argument
409 self.count = None
411 impl = self.valobj.GetChildMemberWithName('_M_impl')
412 self.start = impl.GetChildMemberWithName('_M_start')
413 self.finish = impl.GetChildMemberWithName('_M_finish')
414 self.end = impl.GetChildMemberWithName('_M_end_of_storage')
415 self.data_type = self.start.GetType().GetPointeeType()
416 self.data_size = self.data_type.GetByteSize()
419 if self.start.IsValid() and self.finish.IsValid(
420 ) and self.end.IsValid() and self.data_type.IsValid():
421 self.count = None
423 self.count = 0
425 self.count = 0
430 def __init__(self, valobj, bool_type): argument
431 self.valobj = valobj
432 self.bool_type = bool_type
433 self.valid = False
435 def num_children(self): argument
436 if self.valid:
437 start = self.start_p.GetValueAsUnsigned(0)
438 finish = self.finish_p.GetValueAsUnsigned(0)
439 offset = self.offset.GetValueAsUnsigned(0)
444 def get_child_at_index(self, index): argument
445 if index >= self.num_children():
447 element_type = self.start_p.GetType().GetPointeeType()
452 element = self.start_p.CreateChildAtOffset(
459 return self.valobj.CreateValueFromExpression(
462 def update(self): argument
464 m_impl = self.valobj.GetChildMemberWithName('_M_impl')
465 self.m_start = m_impl.GetChildMemberWithName('_M_start')
466 self.m_finish = m_impl.GetChildMemberWithName('_M_finish')
467 self.start_p = self.m_start.GetChildMemberWithName('_M_p')
468 self.finish_p = self.m_finish.GetChildMemberWithName('_M_p')
469 self.offset = self.m_finish.GetChildMemberWithName('_M_offset')
470 if self.offset.IsValid() and self.start_p.IsValid() and self.finish_p.IsValid():
471 self.valid = True
473 self.valid = False
475 self.valid = False
478 def __init__(self, valobj, dict): argument
482 self.impl = self.StdVBoolImplementation(
485 self.impl = self.StdVectorImplementation(valobj)
489 def num_children(self): argument
490 return self.impl.num_children()
492 def get_child_index(self, name): argument
498 def get_child_at_index(self, index): argument
499 return self.impl.get_child_at_index(index)
501 def update(self): argument
502 return self.impl.update()
504 def has_children(self): argument
513 def __init__(self, valobj, dict): argument
515 self.valobj = valobj
516 self.count = None
517 self.kind = self.get_object_kind(valobj)
518 logger >> "Providing synthetic children for a " + self.kind + " named " + \
521 def get_object_kind(self, valobj): argument
535 def fixup_class_name(self, class_name): argument
547 def update(self): argument
551 self.count = None
556 self.garbage = False
557 self.Mt = self.valobj.GetChildMemberWithName('_M_t')
558 self.Mimpl = self.Mt.GetChildMemberWithName('_M_impl')
559 self.Mheader = self.Mimpl.GetChildMemberWithName('_M_header')
560 if not self.Mheader.IsValid():
561 self.count = 0
563 map_type = self.valobj.GetType()
571 self.data_type = allocator_type.GetTemplateArgumentType(0)
572 if not self.data_type:
576 rep_type = self.valobj.GetChildMemberWithName('_M_t').GetType()
577 self.data_type = rep_type.GetTypedefedType().GetTemplateArgumentType(1)
580 self.Mroot = self.Mheader.GetChildMemberWithName('_M_parent')
581 self.data_size = self.data_type.GetByteSize()
582 self.skip_size = self.Mheader.GetType().GetByteSize()
584 self.count = 0
587 def num_children(self): argument
589 if self.count is None:
590 self.count = self.num_children_impl()
591 return self.count
593 def num_children_impl(self): argument
596 root_ptr_val = self.node_ptr_value(self.Mroot)
599 count = self.Mimpl.GetChildMemberWithName(
606 def get_child_index(self, name): argument
613 def get_child_at_index(self, index): argument
618 if index >= self.num_children():
620 if self.garbage:
625 current = self.left(self.Mheader)
627 current = self.increment_node(current)
631 '[' + str(index) + ']', self.skip_size, self.data_type)
636 def node_ptr_value(self, node): argument
640 def right(self, node): argument
644 def left(self, node): argument
648 def parent(self, node): argument
653 def increment_node(self, node): argument
655 max_steps = self.num_children()
656 if self.node_ptr_value(self.right(node)) != 0:
657 x = self.right(node)
659 while self.node_ptr_value(self.left(x)) != 0:
660 x = self.left(x)
664 self.garbage = True
669 y = self.parent(x)
671 while(self.node_ptr_value(x) == self.node_ptr_value(self.right(y))):
673 y = self.parent(y)
677 self.garbage = True
679 if self.node_ptr_value(self.right(x)) != self.node_ptr_value(y):
683 def has_children(self): argument
689 def __init__(self, valobj, d): argument
690 self.valobj = valobj
691 self.pointer_size = self.valobj.GetProcess().GetAddressByteSize()
692 self.count = None
693 self.block_size = -1
694 self.element_size = -1
695 self.find_block_size()
698 def find_block_size(self): argument
701 self.element_type = self.valobj.GetType().GetTemplateArgumentType(0)
702 if not self.element_type.IsValid():
704 self.element_size = self.element_type.GetByteSize()
712 if self.element_size < 512:
713 self.block_size = 512 // self.element_size
715 self.block_size = 1
717 def num_children(self): argument
718 if self.count is None:
720 return self.count
722 def has_children(self): argument
725 def get_child_index(self, name): argument
731 def get_child_at_index(self, index): argument
732 if index < 0 or self.count is None:
734 if index >= self.num_children():
740 if index < self.first_node_size:
743 … return self.first_elem.CreateChildAtOffset(name, index * self.element_size, self.element_type)
747 i, j = divmod(index - self.first_node_size, self.block_size)
750 node = self.start_node.CreateChildAtOffset(
752 (1 + i) * self.valobj.GetProcess().GetAddressByteSize(),
753 self.element_type.GetPointerType())
754 return node.CreateChildAtOffset(name, j * self.element_size, self.element_type)
759 def update(self): argument
761 self.count = 0
773 if self.block_size < 0 or self.element_size < 0:
778 impl = self.valobj.GetChildMemberWithName('_M_impl')
781 self.start = impl.GetChildMemberWithName('_M_start')
782 self.start_node = self.start.GetChildMemberWithName('_M_node')
783 first_node_address = self.start_node.GetValueAsUnsigned(0)
784 … first_node_last_elem = self.start.GetChildMemberWithName('_M_last').GetValueAsUnsigned(0)
785 self.first_elem = self.start.GetChildMemberWithName('_M_cur')
786 first_node_first_elem = self.first_elem.GetValueAsUnsigned(0)
801 … self.first_node_size = (last_node_last_elem - first_node_first_elem) // self.element_size
802 count += self.first_node_size
804 … self.first_node_size = (first_node_last_elem - first_node_first_elem) // self.element_size
805 count += self.first_node_size
810 count += (last_node_last_elem - last_node_first_elem) // self.element_size
813 …num_intermediate_nodes = (last_node_address - first_node_address - 1) // self.valobj.GetProcess().…
814 count += self.block_size * num_intermediate_nodes
815 self.count = count