From 45993187261f648cdb71542b4339c680f59794e3 Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Sun, 4 Apr 2010 17:32:59 +0800 Subject: [PATCH] [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. --- giscanner/transformer.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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 -- 2.39.2