From bfe330d3afe81da90b089bdbc61db46ce7dbc94d Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Wed, 21 Nov 2007 16:48:23 +0000 Subject: [PATCH] Free function annotations. --- pybindgen/gccxmlparser.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pybindgen/gccxmlparser.py b/pybindgen/gccxmlparser.py index badadae..eff5298 100644 --- a/pybindgen/gccxmlparser.py +++ b/pybindgen/gccxmlparser.py @@ -445,8 +445,13 @@ class ModuleParser(object): allow_empty=True, recursive=False): if fun.name.startswith('__'): continue + + dummy_global_annotations, parameter_annotations = \ + annotations_scanner.get_annotations(fun.location.file_name, + fun.location.line) + try: - return_type = type_registry.lookup_return(fun.return_type) + return_type = type_registry.lookup_return(fun.return_type, parameter_annotations.get('return', {})) except (TypeError, KeyError), ex: warnings.warn("Return value '%s' error (used in %s): %r" % (fun.return_type.decl_string, fun, ex)) @@ -454,7 +459,8 @@ class ModuleParser(object): arguments = [] for arg in fun.arguments: try: - arguments.append(type_registry.lookup_parameter(arg.type, arg.name)) + arguments.append(type_registry.lookup_parameter(arg.type, arg.name, + parameter_annotations.get(arg.name, {}))) except (TypeError, KeyError), ex: warnings.warn("Parameter '%s %s' error (used in %s): %r" % (arg.type.decl_string, arg.name, fun, ex))