[gobject-introspection] Explicitly sort object interfaces, properties, and signals



commit f152f5e97df7783c61907b5f201840afbd46331f
Author: Colin Walters <walters verbum org>
Date:   Wed Oct 7 15:54:05 2009 -0400

    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

 giscanner/glibtransformer.py |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
---
diff --git a/giscanner/glibtransformer.py b/giscanner/glibtransformer.py
index 993aee6..5b94ef7 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
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]