From: Alan Knowles Date: Sun, 4 Apr 2010 09:32:59 +0000 (+0800) Subject: [BUG] Invalid types are mapped into 'any' which is not valid X-Git-Url: http://git.roojs.org/?p=gnome.gobject-introspection;a=commitdiff_plain;h=45993187261f648cdb71542b4339c680f59794e3 [BUG] Invalid types are mapped into 'any' which is not valid where const is placed after char (example inotifytools) somefunc(char const * xxx); Previously it resulting in char any * (or earlier, just char!) now it says char* as the ctype. --- diff --git a/giscanner/transformer.py b/giscanner/transformer.py index cfc2178..65fa559 100644 --- a/giscanner/transformer.py +++ b/giscanner/transformer.py @@ -33,7 +33,7 @@ from .odict import odict from .sourcescanner import ( SourceSymbol, ctype_name, CTYPE_POINTER, CTYPE_BASIC_TYPE, CTYPE_UNION, CTYPE_ARRAY, CTYPE_TYPEDEF, - CTYPE_VOID, CTYPE_ENUM, CTYPE_FUNCTION, CTYPE_STRUCT, + CTYPE_VOID, CTYPE_ENUM, CTYPE_FUNCTION, CTYPE_STRUCT, CTYPE_INVALID, CSYMBOL_TYPE_FUNCTION, CSYMBOL_TYPE_TYPEDEF, CSYMBOL_TYPE_STRUCT, CSYMBOL_TYPE_ENUM, CSYMBOL_TYPE_UNION, CSYMBOL_TYPE_OBJECT, CSYMBOL_TYPE_MEMBER, CSYMBOL_TYPE_ELLIPSIS, CSYMBOL_TYPE_CONST, @@ -350,8 +350,12 @@ class Transformer(object): value = 'void' elif source_type.type == CTYPE_BASIC_TYPE: value = source_type.name - if source_type.base_type: - value += ' ' + self._create_source_type(source_type.base_type) + # share the const down the tree.. + if not source_type.base_type: + return value + value_add = self._create_source_type(source_type.base_type) + if len(value_add): + value += ' ' + value_add elif source_type.type == CTYPE_TYPEDEF: value = source_type.name elif source_type.type == CTYPE_ARRAY: @@ -360,6 +364,9 @@ class Transformer(object): value = self._create_source_type(source_type.base_type) + '*' elif source_type.type == CTYPE_STRUCT: value = source_type.name + elif source_type.type == CTYPE_INVALID: + #this happens if const is after the type.. + value = '' else: value = 'any' return value