gobject-introspection r738 - in trunk: . giscanner tests/scanner
- From: jobi svn gnome org
- To: svn-commits-list gnome org
- Subject: gobject-introspection r738 - in trunk: . giscanner tests/scanner
- Date: Fri, 17 Oct 2008 09:29:34 +0000 (UTC)
Author: jobi
Date: Fri Oct 17 09:29:34 2008
New Revision: 738
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=738&view=rev
Log:
2008-10-16 Johan Bilien <jobi via ecp fr>
Bug 556610 â giscanner/girparser.py drops parameter options
* tests/scanner/drawable-injected-1.0-expected.gir,
tests/scanner/DrawableAdditions.xml: added simple test for injection.
* giscanner/ast.py: allow Parameter to take options in the constructor
* giscanner/girparser.py: parse parameter options (transfer,
direction, allow-none)
Modified:
trunk/ChangeLog
trunk/giscanner/ast.py
trunk/giscanner/girparser.py
trunk/tests/scanner/Makefile.am
Modified: trunk/giscanner/ast.py
==============================================================================
--- trunk/giscanner/ast.py (original)
+++ trunk/giscanner/ast.py Fri Oct 17 09:29:34 2008
@@ -78,6 +78,10 @@
PARAM_DIRECTION_OUT = 'out'
PARAM_DIRECTION_INOUT = 'inout'
+PARAM_TRANSFER_NONE = 'none'
+PARAM_TRANSFER_CONTAINER = 'container'
+PARAM_TRANSFER_FULL = 'full'
+
type_names = {}
for name in GIR_TYPES:
type_names[name] = name
@@ -260,12 +264,23 @@
class Parameter(Node):
- def __init__(self, name, typenode):
+ def __init__(self, name, typenode, direction=PARAM_DIRECTION_IN,
+ transfer=None, allow_none=False):
Node.__init__(self, name)
self.type = typenode
- self.direction = PARAM_DIRECTION_IN
- self.transfer = None
- self.allow_none = False
+ if direction in [PARAM_DIRECTION_IN, PARAM_DIRECTION_OUT,
+ PARAM_DIRECTION_INOUT]:
+ self.direction = direction
+ else:
+ self.direction = PARAM_DIRECTION_IN
+
+ if transfer in [PARAM_TRANSFER_NONE, PARAM_TRANSFER_CONTAINER,
+ PARAM_TRANSFER_FULL]:
+ self.transfer = transfer
+ else:
+ self.transfer = None
+
+ self.allow_none = not not allow_none
def __repr__(self):
return 'Parameter(%r, %r)' % (self.name, self.type)
Modified: trunk/giscanner/girparser.py
==============================================================================
--- trunk/giscanner/girparser.py (original)
+++ trunk/giscanner/girparser.py Fri Oct 17 09:29:34 2008
@@ -162,8 +162,12 @@
parameters = []
if (parameters_node is not None):
for paramnode in parameters_node.findall(_corens('parameter')):
- parameters.append(Parameter(paramnode.attrib.get('name'),
- self._parse_type(paramnode)))
+ param = Parameter(paramnode.attrib.get('name'),
+ self._parse_type(paramnode),
+ paramnode.attrib.get('direction'),
+ paramnode.attrib.get('transfer'),
+ paramnode.attrib.get('allow-none') == '1')
+ parameters.append(param)
if klass is Callback:
return klass(name, retval, parameters,
node.attrib.get(_cns('type')))
Modified: trunk/tests/scanner/Makefile.am
==============================================================================
--- trunk/tests/scanner/Makefile.am (original)
+++ trunk/tests/scanner/Makefile.am Fri Oct 17 09:29:34 2008
@@ -59,6 +59,11 @@
--output $@
GIRS += drawable-1.0.gir
+drawable-injected-1.0.gir: drawable-1.0.gir $(SCANNER) $(SCANNER_LIBS) Makefile
+ PYTHONPATH=$(top_builddir):$$PYTHONPATH $(CHECK_DEBUG) $(SCANNER) -v \
+ --inject drawable-1.0.gir DrawableAdditions.xml $@
+GIRS += drawable-injected-1.0.gir
+
foo-1.0.gir: libfoo.la foo.c foo.h utility-1.0.gir $(SCANNER) $(SCANNER_LIBS) Makefile
PYTHONPATH=$(top_builddir):$$PYTHONPATH $(CHECK_DEBUG) $(SCANNER) -v \
--add-include-path=$(top_builddir)/gir --add-include-path=. \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]