diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2013-11-14 12:14:29 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2013-11-15 21:03:07 +0000 |
commit | c5b7cc9598f4a9a5c7c42c1ccd06765dc17b4c24 (patch) | |
tree | 0cf967a13cc0b3cd979f3e4b9240089752c6fb13 /solenv | |
parent | 46dbc13169a9b97d3f8ac310ac35d5f51eea7de6 (diff) |
Add Python 3 compatibility to GDB pretty printers.
GDB on *buntu is linked against Python 3.3, which has many
incompatibilities to Python 2, resulting in broken code.
This patch uses the Python six library as a compatibility layer.
Change-Id: Icb4cc54a1d05afb119376bb5e1430c91cb794d08
Reviewed-on: https://gerrit.libreoffice.org/6688
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gdb/boost/lib/unordered.py | 5 | ||||
-rw-r--r-- | solenv/gdb/boost/ptr_container.py | 17 | ||||
-rw-r--r-- | solenv/gdb/boost/unordered.py | 9 | ||||
-rw-r--r-- | solenv/gdb/boost/util/printing.py | 3 | ||||
-rw-r--r-- | solenv/gdb/libreoffice/basegfx.py | 9 | ||||
-rw-r--r-- | solenv/gdb/libreoffice/cppu.py | 6 | ||||
-rw-r--r-- | solenv/gdb/libreoffice/sal.py | 3 | ||||
-rw-r--r-- | solenv/gdb/libreoffice/svl.py | 5 | ||||
-rw-r--r-- | solenv/gdb/libreoffice/sw.py | 5 | ||||
-rw-r--r-- | solenv/gdb/libreoffice/tl.py | 5 | ||||
-rw-r--r-- | solenv/gdb/libreoffice/util/printing.py | 3 | ||||
-rw-r--r-- | solenv/gdb/libreoffice/util/uno.py | 17 |
12 files changed, 50 insertions, 37 deletions
diff --git a/solenv/gdb/boost/lib/unordered.py b/solenv/gdb/boost/lib/unordered.py index eecfa7935a8e..ee58d0481158 100644 --- a/solenv/gdb/boost/lib/unordered.py +++ b/solenv/gdb/boost/lib/unordered.py @@ -19,6 +19,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. import gdb +import six class Unordered(object): '''Common representation of Boost.Unordered types''' @@ -57,7 +58,7 @@ class Unordered(object): assert node_type != None return node_type - class _iterator(object): + class _iterator(six.Iterator): '''Iterator for Boost.Unordered types''' def __init__(self, first_bucket, last_bucket, node_type, extractor): @@ -71,7 +72,7 @@ class Unordered(object): def __iter__(self): return self - def next(self): + def __next__(self): if self.node: self.node = self.node.dereference()['next_'] diff --git a/solenv/gdb/boost/ptr_container.py b/solenv/gdb/boost/ptr_container.py index 9e9a66feb5af..38f3b2fd21af 100644 --- a/solenv/gdb/boost/ptr_container.py +++ b/solenv/gdb/boost/ptr_container.py @@ -20,6 +20,7 @@ import gdb +import six from boost.lib.unordered import Map, Set @@ -59,7 +60,7 @@ class PtrStdPrinterBase(object): def children(self): return self._iterator(self.sequence, self.value.type.template_argument(0)) - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, sequence, type): self.impl = iter(sequence) @@ -68,7 +69,7 @@ class PtrStdPrinterBase(object): def __iter__(self): return self - def next(self): + def __next__(self): (index, value) = self.impl.next() return (index, value.cast(self.type).dereference()) @@ -124,7 +125,7 @@ class PtrMapPrinter(PtrStdPrinterBase): type = self.value.type return self._iterator(self.sequence, type.template_argument(0), type.template_argument(1)) - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, sequence, key_type, value_type): self.impl = iter(sequence) @@ -135,7 +136,7 @@ class PtrMapPrinter(PtrStdPrinterBase): def __iter__(self): return self - def next(self): + def __next__(self): (index, value) = self.impl.next() if self.key: value = value.cast(self.key_type) @@ -176,7 +177,7 @@ class PtrUnorderedMapPrinter(PtrBoostPrinterBase): def display_hint(self): return 'map' - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, impl, value_type): self.impl = impl @@ -187,7 +188,7 @@ class PtrUnorderedMapPrinter(PtrBoostPrinterBase): def __iter__(self): return self - def next(self): + def __next__(self): if self.step: self.value = self.impl.next() value = self.value[0] @@ -205,7 +206,7 @@ class PtrUnorderedSetPrinter(PtrBoostPrinterBase): def display_hint(self): return 'array' - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, impl, value_type): self.impl = impl @@ -214,7 +215,7 @@ class PtrUnorderedSetPrinter(PtrBoostPrinterBase): def __iter__(self): return self - def next(self): + def __next__(self): return ("", self.impl.next()[1].cast(self.value_type).dereference()) printer = None diff --git a/solenv/gdb/boost/unordered.py b/solenv/gdb/boost/unordered.py index a511424d6154..c21d31acf7b2 100644 --- a/solenv/gdb/boost/unordered.py +++ b/solenv/gdb/boost/unordered.py @@ -20,6 +20,7 @@ import gdb +import six from boost.lib.unordered import Map, Set @@ -50,7 +51,7 @@ class UnorderedMapPrinter(PrinterBase): def display_hint(self): return 'map' - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, impl): self.impl = impl @@ -60,7 +61,7 @@ class UnorderedMapPrinter(PrinterBase): def __iter__(self): return self - def next(self): + def __next__(self): if self.step: self.value = self.impl.next() value = self.value[0] @@ -77,7 +78,7 @@ class UnorderedSetPrinter(PrinterBase): def display_hint(self): return 'array' - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, impl): self.impl = impl @@ -85,7 +86,7 @@ class UnorderedSetPrinter(PrinterBase): def __iter__(self): return self - def next(self): + def __next__(self): return ("", self.impl.next()[1]) printer = None diff --git a/solenv/gdb/boost/util/printing.py b/solenv/gdb/boost/util/printing.py index b6d714eae7d7..1d5d0bac9fc6 100644 --- a/solenv/gdb/boost/util/printing.py +++ b/solenv/gdb/boost/util/printing.py @@ -22,6 +22,7 @@ from collections import Mapping import gdb import re +import six from boost.util.compatibility import use_gdb_printing @@ -85,7 +86,7 @@ class FunctionLookup(Mapping): return len(self.map) def __getitem__(self, type): - for (test, printer) in self.map.iteritems(): + for (test, printer) in six.iteritems(self.map): if test(type): return printer return None diff --git a/solenv/gdb/libreoffice/basegfx.py b/solenv/gdb/libreoffice/basegfx.py index 10381c1210fa..ec564b99c903 100644 --- a/solenv/gdb/libreoffice/basegfx.py +++ b/solenv/gdb/libreoffice/basegfx.py @@ -8,6 +8,7 @@ # import gdb +import six from libreoffice.util import printing @@ -73,7 +74,7 @@ class B2DPolygonPrinter(object): else: return self._plainIterator(self._count(), self.value) - class _plainIterator(object): + class _plainIterator(six.Iterator): def __init__(self, count, value): self.count = count self.value = value @@ -82,7 +83,7 @@ class B2DPolygonPrinter(object): def __iter__(self): return self - def next(self): + def __next__(self): if self.index >= self.count: raise StopIteration() currPoint = gdb.parse_and_eval( @@ -95,7 +96,7 @@ class B2DPolygonPrinter(object): return ('point %d' % (self.index-1), '(%15f, %15f)' % (currPoint['mfX'], currPoint['mfY'])) - class _bezierIterator(object): + class _bezierIterator(six.Iterator): def __init__(self, count, value): self.count = count self.value = value @@ -104,7 +105,7 @@ class B2DPolygonPrinter(object): def __iter__(self): return self - def next(self): + def __next__(self): if self.index >= self.count: raise StopIteration() currPoint = gdb.parse_and_eval( diff --git a/solenv/gdb/libreoffice/cppu.py b/solenv/gdb/libreoffice/cppu.py index bc265aee7521..1ab2b6e6312b 100644 --- a/solenv/gdb/libreoffice/cppu.py +++ b/solenv/gdb/libreoffice/cppu.py @@ -7,6 +7,8 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. # +import six + from libreoffice.util import printing from libreoffice.util.uno import TypeClass, make_uno_type, uno_cast @@ -58,7 +60,7 @@ class UnoReferencePrinter(object): class UnoSequencePrinter(object): '''Prints UNO Sequence''' - class iterator(object): + class iterator(six.Iterator): '''Sequence iterator''' def __init__(self, first, size): @@ -69,7 +71,7 @@ class UnoSequencePrinter(object): def __iter__(self): return self - def next(self): + def __next__(self): if self.count == self.size: raise StopIteration count = self.count diff --git a/solenv/gdb/libreoffice/sal.py b/solenv/gdb/libreoffice/sal.py index 8b4f0cbb9078..c2e8384537be 100644 --- a/solenv/gdb/libreoffice/sal.py +++ b/solenv/gdb/libreoffice/sal.py @@ -9,6 +9,7 @@ import gdb import gdb.types +import six from libreoffice.util import printing from libreoffice.util.string import StringPrinterHelper @@ -86,7 +87,7 @@ class OslFileStatusPrinter(object): if etype is not None: pretty_etype = '<unknown type>' # in case it's not one of the fields - for field_name, field_val in fields_to_enum_val.iteritems(): + for field_name, field_val in six.iteritems(fields_to_enum_val): if etype == field_val: pretty_etype = self.pretty_file_type(field_name) else: diff --git a/solenv/gdb/libreoffice/svl.py b/solenv/gdb/libreoffice/svl.py index 83fe60919491..31b4507777a9 100644 --- a/solenv/gdb/libreoffice/svl.py +++ b/solenv/gdb/libreoffice/svl.py @@ -8,6 +8,7 @@ # import gdb +import six from libreoffice.util import printing @@ -30,7 +31,7 @@ class SvArrayPrinter(object): def display_hint(self): return 'array' - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, data, count): self.data = data @@ -41,7 +42,7 @@ class SvArrayPrinter(object): def __iter__(self): return self - def next(self): + def __next__(self): if self.pos == self.count: raise StopIteration() diff --git a/solenv/gdb/libreoffice/sw.py b/solenv/gdb/libreoffice/sw.py index b46c287acde3..515718e9ae2e 100644 --- a/solenv/gdb/libreoffice/sw.py +++ b/solenv/gdb/libreoffice/sw.py @@ -7,6 +7,7 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. # +import six from libreoffice.util import printing class SwPositionPrinter(object): @@ -205,7 +206,7 @@ class BigPtrArrayPrinter(object): return 'array' - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, array): self.blocks = array['ppInf'] @@ -255,7 +256,7 @@ class BigPtrArrayPrinter(object): return "\n[%4d] %s%s%s %s" % (self.pos, cur_indent, \ node, self.max_indent[len(cur_indent):], value) - def next(self): + def __next__(self): if self.pos == self.count: raise StopIteration() diff --git a/solenv/gdb/libreoffice/tl.py b/solenv/gdb/libreoffice/tl.py index 15e539883501..816de7b10db1 100644 --- a/solenv/gdb/libreoffice/tl.py +++ b/solenv/gdb/libreoffice/tl.py @@ -8,6 +8,7 @@ # import gdb +import six from libreoffice.util import printing @@ -159,7 +160,7 @@ class TimePrinter(object): def to_string(self): return str(TimeImpl.parse(self.val)) -class IteratorHelper(object): +class IteratorHelper(six.Iterator): '''Implements a container iterator useable for both 'linear' containers (like DynArray or List) and Tables ''' @@ -179,7 +180,7 @@ class IteratorHelper(object): def __iter__(self): return self - def next(self): + def __next__(self): if self.pos == self.count: raise StopIteration() diff --git a/solenv/gdb/libreoffice/util/printing.py b/solenv/gdb/libreoffice/util/printing.py index f28b255f327a..9cbae3080a64 100644 --- a/solenv/gdb/libreoffice/util/printing.py +++ b/solenv/gdb/libreoffice/util/printing.py @@ -10,6 +10,7 @@ from collections import Mapping import gdb import re +import six from libreoffice.util.compatibility import use_gdb_printing @@ -73,7 +74,7 @@ class FunctionLookup(Mapping): return len(self.map) def __getitem__(self, type): - for (test, printer) in self.map.iteritems(): + for (test, printer) in six.iteritems(self.map): if test(type): return printer return None diff --git a/solenv/gdb/libreoffice/util/uno.py b/solenv/gdb/libreoffice/util/uno.py index 37feddbf0813..b92a817a5357 100644 --- a/solenv/gdb/libreoffice/util/uno.py +++ b/solenv/gdb/libreoffice/util/uno.py @@ -9,6 +9,7 @@ import gdb import re +import six class UnsupportedType(Exception): '''Represents exception thrown when an unsupported UNO type(like @@ -295,7 +296,7 @@ class CompoundType(Type): self.typename = self.uno2cpp(self.tag) self._type = full_type - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, count, types, names): self.count = count @@ -306,7 +307,7 @@ class CompoundType(Type): def __iter__(self): return self - def next(self): + def __next__(self): assert self.pos >= 0 and self.pos <= self.count if self.pos == self.count: raise StopIteration @@ -349,7 +350,7 @@ class EnumType(Type): self.typename = self.uno2cpp(self.tag) self._type = full_type.cast(gdb.lookup_type('_typelib_EnumTypeDescription')) - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, count, values, names): self.count = count @@ -360,7 +361,7 @@ class EnumType(Type): def __iter__(self): return self - def next(self): + def __next__(self): assert self.pos >= 0 and self.pos <= self.count if self.pos == self.count: raise StopIteration @@ -405,7 +406,7 @@ class InterfaceMethodType(InterfaceMemberType): self.oneway = full_type['bOneWay'] self._type = full_type - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, count, values): self.count = count @@ -416,7 +417,7 @@ class InterfaceMethodType(InterfaceMemberType): def __iter__(self): return self - def next(self): + def __next__(self): assert self.pos >= 0 and self.pos <= self.count if self.pos == self.count: raise StopIteration @@ -484,7 +485,7 @@ class InterfaceType(Type): self.uik = full_type['aUik'] self._type = full_type - class _iterator(object): + class _iterator(six.Iterator): def __init__(self, count, values): assert values @@ -495,7 +496,7 @@ class InterfaceType(Type): def __iter__(self): return self - def next(self): + def __next__(self): assert self.pos >= 0 and self.pos <= self.count pvalue = self.values[self.pos] assert pvalue |