[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