From 2757ee9fe610e253e4ccc37423fa420004d0f388 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Mon, 9 Jan 2017 10:27:22 +0200 Subject: 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 --- solenv/gdb/libreoffice/svl.py | 44 ++----------------------------------------- 1 file changed, 2 insertions(+), 42 deletions(-) (limited to 'solenv') 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 -- cgit