summaryrefslogtreecommitdiff
path: root/giscanner/girparser.py
diff options
context:
space:
mode:
authorJohan Bilien <jobi@via.ecp.fr>2008-10-21 17:04:11 +0000
committerJohan Bilien <jobi@src.gnome.org>2008-10-21 17:04:11 +0000
commitefcca1bcac888b214b80fe2451edacbb3b224be3 (patch)
tree1f781e2fb232e65cc48731d19de4254d3bdb5f49 /giscanner/girparser.py
parent05d588fc2d77ad6068ec992915d23afdfed1b7b4 (diff)
downloadgobject-introspection-efcca1bcac888b214b80fe2451edacbb3b224be3.tar.gz
Bug 557241 – "throws" flag for functions
2008-10-21 Johan Bilien <jobi@via.ecp.fr> Bug 557241 – "throws" flag for functions * tests/scanner/drawable-1.0-expected.gir, tests/scanner/drawable-injected-1.0-expected.gir, tests/scanner/drawable.[ch]: add simple test for throwing function (has GError ** as last argument) * giscanner/ast.py: add a 'throws' flag to Function * giscanner/glibtransformer.py: if a function's last paramerter is a GError, set the 'throws' flag and remove that parameter * giscanner/girwriter.py: write out the 'throws' attribute * giscanner/girparser.py: support parsing the 'throws' attribute * tests/repository/gitestthrows.c: add a simple test to check the throws flag in a typelib and invoke the function * girepository/ginfo.c, girepository/girnode.[ch], girepository/girnode.h, girepository/girparser.c, girepository/girepository.h: Add and parse the GI_FUNCTION_THROWS flag * girepository/ginvoke.c: if a function throws, add a GError as last arguments, and propagate the error to the invoker. svn path=/trunk/; revision=773
Diffstat (limited to 'giscanner/girparser.py')
-rw-r--r--giscanner/girparser.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/giscanner/girparser.py b/giscanner/girparser.py
index 95ee4d01..04a5bba7 100644
--- a/giscanner/girparser.py
+++ b/giscanner/girparser.py
@@ -178,7 +178,8 @@ class GIRParser(object):
node.attrib.get(_cns('type')))
else:
identifier = node.attrib.get(_cns('identifier'))
- return klass(name, retval, parameters, identifier)
+ throws = (node.attrib.get('throws') == '1')
+ return klass(name, retval, parameters, identifier, throws)
def _parse_struct(self, node):
if _glibns('type-name') in node.attrib: