summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2009-10-07 15:54:05 -0400
committerColin Walters <walters@verbum.org>2009-10-07 16:02:31 -0400
commitf152f5e97df7783c61907b5f201840afbd46331f (patch)
tree5ef6b2f941795971d18539f728be8d20c761bfbe
parent5013e23d5405db533133a4b158d9dfa0ea95fbe4 (diff)
downloadgobject-introspection-f152f5e97df7783c61907b5f201840afbd46331f.tar.gz
Explicitly sort object interfaces, properties, and signals
Previously we were taking this in order from the dumper, which ends up being some undefined order from GObject. Just use Node's cmp to sort them by name explicitly. This probably doesn't cover all possible instances of this problem, but these fixes are right. https://bugzilla.gnome.org/show_bug.cgi?id=597724
-rw-r--r--giscanner/glibtransformer.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/giscanner/glibtransformer.py b/giscanner/glibtransformer.py
index 993aee6e..5b94ef75 100644
--- a/giscanner/glibtransformer.py
+++ b/giscanner/glibtransformer.py
@@ -746,7 +746,7 @@ class GLibTransformer(object):
for interface in xmlnode.findall('implements'):
gitype = self._resolve_gtypename(interface.attrib['name'])
gt_interfaces.append(gitype)
- node.interfaces = gt_interfaces
+ node.interfaces = sorted(gt_interfaces)
def _introspect_properties(self, node, xmlnode):
for pspec in xmlnode.findall('property'):
@@ -762,6 +762,7 @@ class GLibTransformer(object):
readable, writable, construct, construct_only,
ctype,
))
+ node.properties = sorted(node.properties)
def _introspect_signals(self, node, xmlnode):
for signal_info in xmlnode.findall('signal'):
@@ -781,6 +782,7 @@ class GLibTransformer(object):
param.transfer = 'none'
signal.parameters.append(param)
node.signals.append(signal)
+ node.signals = sorted(node.signals)
# Resolver