scanner: Always explicitely set the scope of callbacks
authorJohan Bilien <jobi@litl.com>
Thu, 14 Jan 2010 22:02:36 +0000 (17:02 -0500)
committerJohan Bilien <jobi@litl.com>
Fri, 15 Jan 2010 00:20:53 +0000 (19:20 -0500)
default to 'call' as stated in the annotation documentation.

https://bugzilla.gnome.org/show_bug.cgi?id=607026

gir/Everything-1.0-expected.gir
giscanner/annotationparser.py
giscanner/transformer.py
tests/scanner/annotation-1.0-expected.gir
tests/scanner/annotation-1.0-expected.tgir

index 5bb6c18..145a9c9 100644 (file)
@@ -698,7 +698,7 @@ is invoked.">
         <parameter name="user_data" transfer-ownership="none">
           <type name="any" c:type="gpointer"/>
         </parameter>
-        <parameter name="notify" transfer-ownership="none">
+        <parameter name="notify" transfer-ownership="none" scope="call">
           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
         </parameter>
       </parameters>
index d91bb1c..aa04ef4 100644 (file)
@@ -507,7 +507,7 @@ class AnnotationApplier(object):
 
     def _parse_param(self, parent, param, tag):
         options = getattr(tag, 'options', {})
-        if isinstance(parent, Function) and not param.scope:
+        if isinstance(parent, Function):
             scope = options.get(OPT_SCOPE)
             if scope:
                 param.scope = scope.one()
index 1024ee3..f31408f 100644 (file)
@@ -295,6 +295,10 @@ class Transformer(object):
             if not self._type_is_callback(param.type):
                 continue
 
+            # set a default scope
+            if param.scope is None:
+                param.scope = 'call'
+
             # j is the index where we look for closure/destroy to
             # group with the callback param
             j = i + 1
index 2eef210..ab81ae1 100644 (file)
@@ -463,7 +463,7 @@ type.">
           <parameter name="user_data" transfer-ownership="none">
             <type name="any" c:type="gpointer"/>
           </parameter>
-          <parameter name="destroy" transfer-ownership="none">
+          <parameter name="destroy" transfer-ownership="none" scope="call">
             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
           </parameter>
         </parameters>
@@ -555,12 +555,13 @@ detection, and fixing it via annotations.">
       <parameters>
         <parameter name="callback"
                    transfer-ownership="none"
+                   scope="call"
                    closure="2"
                    destroy="1"
                    doc="Destroy notification">
           <type name="Callback" c:type="AnnotationCallback"/>
         </parameter>
-        <parameter name="destroy" transfer-ownership="none">
+        <parameter name="destroy" transfer-ownership="none" scope="call">
           <type name="NotifyFunc" c:type="AnnotationNotifyFunc"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">
index 1507174..9e9370b 100644 (file)
           <parameter name="user_data" transfer-ownership="none">
             <type name="any"/>
           </parameter>
-          <parameter name="destroy" transfer-ownership="none">
+          <parameter name="destroy" transfer-ownership="none" scope="call">
             <type name="GLib.DestroyNotify"/>
           </parameter>
         </parameters>
         <type name="none"/>
       </return-value>
       <parameters>
-        <parameter name="callback" transfer-ownership="none" closure="2" destroy="1">
+        <parameter name="callback" transfer-ownership="none" scope="call" closure="2" destroy="1">
           <type name="Callback"/>
         </parameter>
-        <parameter name="destroy" transfer-ownership="none">
+        <parameter name="destroy" transfer-ownership="none" scope="call">
           <type name="NotifyFunc"/>
         </parameter>
         <parameter name="data" transfer-ownership="none">