summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-01-09 10:27:22 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-01-17 10:07:10 +0200
commit2757ee9fe610e253e4ccc37423fa420004d0f388 (patch)
treea5a505f12a1c17cfab2001c2cbf43bd721633f0f /solenv
parentee2bd1ee97194f4d39d4d6ab95c9b926b5077cb8 (diff)
used std::map in SfxItemSet
instead of naked array SfxItemIter ended up needing to take copies of stuff because various code likes to iterate over the items and delete items inside the loop. The gdb pretty printer is no longer quite as pretty as it was before, but it still prints useful info. Change-Id: I59b07ea42f6b1c74798a15402970b9dbd8233dbe
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gdb/libreoffice/svl.py44
1 files changed, 2 insertions, 42 deletions
diff --git a/solenv/gdb/libreoffice/svl.py b/solenv/gdb/libreoffice/svl.py
index 05049652c434..f7d5dbcc5e90 100644
--- a/solenv/gdb/libreoffice/svl.py
+++ b/solenv/gdb/libreoffice/svl.py
@@ -34,48 +34,8 @@ class ItemSetPrinter(object):
return whiches
def children(self):
- whichranges = self.which_ranges()
- size = 0
- whichids = []
- for (whichfrom, whichto) in whichranges:
- size += whichto - whichfrom + 1
- whichids += [which for which in range(whichfrom, whichto+1)]
- return self._iterator(self.value['m_pItems'], size, whichids)
-
- class _iterator(six.Iterator):
-
- def __init__(self, data, count, whichids):
- self.data = data
- self.whichids = whichids
- self.count = count
- self.pos = 0
- self._check_invariant()
-
- def __iter__(self):
- return self
-
- def __next__(self):
- if self.pos == self.count:
- raise StopIteration()
-
- which = self.whichids[self.pos]
- elem = self.data[self.pos]
- self.pos = self.pos + 1
-
- self._check_invariant()
- if (elem == -1):
- elem = "(Invalid)"
- elif (elem != 0):
- # let's try how well that works...
- elem = elem.cast(elem.dynamic_type).dereference()
- return (str(which), elem)
-
- def _check_invariant(self):
- assert self.count >= 0
- assert self.data
- assert self.pos >= 0
- assert self.pos <= self.count
- assert len(self.whichids) == self.count
+ children = [ ( 'items', self.value['m_aItems'] ) ]
+ return children.__iter__()
printer = None