Fix processing of functions from last commit.
authorColin Walters <walters@verbum.org>
Wed, 13 Aug 2008 20:44:58 +0000 (20:44 +0000)
committerColin Walters <walters@src.gnome.org>
Wed, 13 Aug 2008 20:44:58 +0000 (20:44 +0000)
2008-08-13  Colin Walters  <walters@verbum.org>

* giscanner/girparser.py: Fix processing of functions
from last commit.

svn path=/trunk/; revision=358

ChangeLog
giscanner/girparser.py

index 2ed92bc..e2fc755 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2008-08-13  Colin Walters  <walters@verbum.org>
 
+       * giscanner/girparser.py: Fix processing of functions
+       from last commit.
+
+2008-08-13  Colin Walters  <walters@verbum.org>
+
        * giscanner/girparser.py: Parse more than just <class.
        * giscanner/glibtransformer.py: Put aliases in a separate
        data structure since their name is not canonicall.
index 33b4313..41b58c6 100644 (file)
@@ -86,13 +86,14 @@ class GIRParser(object):
                              ]:
                 pass
 
+
     def _parse_functions_props(self, child, obj):
         for meth in child.findall(_corens('method')):
-            obj.methods.append(_parse_function(meth, Function))
+            obj.methods.append(self._parse_function(meth, Function))
         for ctor in child.findall(_corens('constructor')):
-            obj.constructors.append(_parse_function(meth, Function))
+            obj.constructors.append(self._parse_function(ctor, Function))
         for cb in child.findall(_corens('callback')):
-            obj.fields.append(_parse_function(meth, Callback))
+            obj.fields.append(self._parse_function(cb, Callback))
 
 
     def _parse_function(self, child, klass):
@@ -101,9 +102,12 @@ class GIRParser(object):
         for paramnode in child.findall('parameter'):
             paramtype = self._parse_type(paramnode)
             params.append(Parameter(paramnode.attrib['name'], paramtype))
-        try:
-            ident = child.attrib[_cns('identifier')]
-        except KeyError, e:
+        if klass is not Callback:
+            try:
+                ident = child.attrib[_cns('identifier')]
+            except KeyError, e:
+                ident = None
+        else:
             ident = None
         args = [child.attrib['name'], retval, params]
         if ident: