summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Holejsovsky <pavel.holejsovsky@gmail.com>2010-12-14 16:14:55 +0100
committerPavel Holejsovsky <pavel.holejsovsky@gmail.com>2010-12-15 09:36:21 +0100
commit0729fee228c0c492d10dcf9827903b94a077433d (patch)
tree0ea629a2694db300c2f619da1791b07ebf11a593
parent785f4f7b22b92679c395deafd0c6ad394e967f62 (diff)
downloadgobject-introspection-0729fee228c0c492d10dcf9827903b94a077433d.tar.gz
giscanner: don't ignore signal parameter names from annotations.
If present in annotation, use parameter names from annotation instead of (object, p0, p1, ...) names generated by dumpparser. Assign names for all parameters before trying to resolve annotation types, so that annotations containing forward references to other arguments, e.g. * GApplication::open: * @application: the application * @files: (array length=n_files) (element-type GFile): an array of #GFiles * @n_files: the length of @files
-rw-r--r--giscanner/maintransformer.py5
-rw-r--r--tests/scanner/Regress-1.0-expected.gir6
2 files changed, 7 insertions, 4 deletions
diff --git a/giscanner/maintransformer.py b/giscanner/maintransformer.py
index 4ae55169..9729d4d4 100644
--- a/giscanner/maintransformer.py
+++ b/giscanner/maintransformer.py
@@ -719,12 +719,15 @@ usage is void (*_gtk_reserved1)(void);"""
# than the number of signal parameters
if block and len(block.tags) > len(signal.parameters):
names = block.tags.items()
+ # Resolve real parameter names early, so that in later
+ # phase we can refer to them while resolving annotations.
+ for i, param in enumerate(signal.parameters):
+ param.argname, tag = names[i+1]
else:
names = []
for i, param in enumerate(signal.parameters):
if names:
name, tag = names[i+1]
- param.name = name
options = getattr(tag, 'options', {})
param_type = options.get(OPT_TYPE)
if param_type:
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index c0590d7e..17e130d6 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -630,7 +630,7 @@ case.</doc>
<type name="none"/>
</return-value>
<parameters>
- <parameter name="object" transfer-ownership="none">
+ <parameter name="arr" transfer-ownership="none">
<doc xml:whitespace="preserve">numbers</doc>
<array name="GLib.Array">
<type name="guint"/>
@@ -645,7 +645,7 @@ TpAccount::status-changed</doc>
<type name="none"/>
</return-value>
<parameters>
- <parameter name="object" transfer-ownership="none">
+ <parameter name="hash" transfer-ownership="none">
<type name="GLib.HashTable">
<type name="utf8"/>
<type name="GObject.Value"/>
@@ -659,7 +659,7 @@ TpAccount::status-changed</doc>
<type name="none"/>
</return-value>
<parameters>
- <parameter name="object" transfer-ownership="none">
+ <parameter name="strs" transfer-ownership="none">
<doc xml:whitespace="preserve">strings</doc>
<array>
<type name="utf8"/>