[Libreoffice-commits] core.git: 2 commits - solenv/gdb
Miklos Vajna
vmiklos at suse.cz
Tue Apr 9 00:26:12 PDT 2013
solenv/gdb/libreoffice/cppu.py | 5 ---
solenv/gdb/libreoffice/sw.py | 62 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 4 deletions(-)
New commits:
commit 2ffa67f785bc82cb581daadf0c982dc1990bd17d
Author: Miklos Vajna <vmiklos at suse.cz>
Date: Tue Apr 9 09:25:37 2013 +0200
gdb: pretty-printers for sw::mark::IMark, sw::UnoImplPtr and SwXTextRange
Change-Id: I09b9e5a64b1b2630dbccdd9cf4392376b955dbdd
diff --git a/solenv/gdb/libreoffice/sw.py b/solenv/gdb/libreoffice/sw.py
index 532f1c5..1a06139 100644
--- a/solenv/gdb/libreoffice/sw.py
+++ b/solenv/gdb/libreoffice/sw.py
@@ -99,6 +99,64 @@ class SwRectPrinter(object):
children = [ ( 'point', point), ( 'size', size ) ]
return children.__iter__()
+class SwIMarkPrinter(object):
+ '''Prints sw::mark::IMark.'''
+
+ def __init__(self, typename, value):
+ self.typename = typename
+ self.value = value
+
+ def to_string(self):
+ return "%s" % (self.typename)
+
+ def children(self):
+ if str(self.value.dynamic_type) == "sw::mark::UnoMark":
+ unoMark = self.value.cast(self.value.dynamic_type)
+ pos1 = unoMark['m_pPos1']
+ pos2 = unoMark['m_pPos2']
+ children = [ ( 'pos1', pos1), ( 'pos2', pos2 ) ]
+ return children.__iter__()
+ else:
+ return self._iterator(self.value)
+
+class SwXTextRangeImplPrinter(object):
+ '''Prints SwXTextRange::Impl.'''
+
+ def __init__(self, typename, value):
+ self.typename = typename
+ self.value = value
+
+ def to_string(self):
+ return "%s" % (self.typename)
+
+ def children(self):
+ mark = self.value['m_pMark'].dereference()
+ children = [('mark', mark)]
+ return children.__iter__()
+
+class SwUnoImplPtrPrinter(object):
+ """Prints sw::UnoImplPtr"""
+
+ def __init__(self, typename, value):
+ self.typename = typename
+ self.value = value
+
+ def to_string(self):
+ if self.value['m_p']:
+ return "%s %s" % (self.typename, self.value['m_p'].dereference())
+ else:
+ return "empty %s" % (self.typename,)
+
+class SwXTextRangePrinter(object):
+ '''Prints SwXTextRange.'''
+
+ def __init__(self, typename, value):
+ self.typename = typename
+ self.value = value
+
+ def to_string(self):
+ return "%s %s" % (self.typename, self.value['m_pImpl'])
+
class BigPtrArrayPrinter(object):
'''Prints BigPtrArray.'''
@@ -222,6 +280,10 @@ def build_pretty_printers():
printer.add('SwIndex', SwIndexPrinter)
printer.add('SwPaM', SwPaMPrinter)
printer.add('SwRect', SwRectPrinter)
+ printer.add('sw::mark::IMark', SwIMarkPrinter)
+ printer.add('SwXTextRange::Impl', SwXTextRangeImplPrinter)
+ printer.add('sw::UnoImplPtr', SwUnoImplPtrPrinter)
+ printer.add('SwXTextRange', SwXTextRangePrinter)
def register_pretty_printers(obj):
printing.register_pretty_printer(printer, obj)
commit 6879db2101f8db185b6eee6bfad755347b28c363
Author: Miklos Vajna <vmiklos at suse.cz>
Date: Tue Apr 9 09:24:30 2013 +0200
gdb: get UnoReferencePrinter work again
Change-Id: I07d6a24f5c94a115d38ccffde26725b668dab430
diff --git a/solenv/gdb/libreoffice/cppu.py b/solenv/gdb/libreoffice/cppu.py
index dd5ff2d..83c4bff 100644
--- a/solenv/gdb/libreoffice/cppu.py
+++ b/solenv/gdb/libreoffice/cppu.py
@@ -64,7 +64,7 @@ class UnoReferencePrinter(object):
iface = self.value['_pInterface']
if iface:
try:
- impl = iface.cast(_itype).dereference()
+ impl = iface.cast(iface.dynamic_type).dereference()
return '%s to %s' % (self.typename, str(impl))
except:
# fallback for potential problem:
@@ -74,9 +74,6 @@ class UnoReferencePrinter(object):
else:
return "empty %s" % self.typename
- def _itype(self):
- return self.value.type.template_argument(0).pointer()
-
class UnoSequencePrinter(object):
'''Prints UNO Sequence'''
More information about the Libreoffice-commits
mailing list