summaryrefslogtreecommitdiff
path: root/giscanner/transformer.py
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/transformer.py')
-rw-r--r--giscanner/transformer.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index c3d34d6a..c52b108d 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -343,6 +343,9 @@ class Transformer(object):
if (ctype == CTYPE_POINTER and
symbol.base_type.base_type.type == CTYPE_FUNCTION):
node = self._create_callback(symbol)
+ elif (ctype == CTYPE_POINTER and
+ symbol.base_type.base_type.type == CTYPE_STRUCT):
+ node = self._create_typedef_struct(symbol, disguised=True)
elif ctype == CTYPE_STRUCT:
node = self._create_typedef_struct(symbol)
elif ctype == CTYPE_UNION:
@@ -567,9 +570,9 @@ class Transformer(object):
const = Constant(name, type_name, value)
return const
- def _create_typedef_struct(self, symbol):
+ def _create_typedef_struct(self, symbol, disguised=False):
name = self.remove_prefix(symbol.ident)
- struct = Struct(name, symbol.ident)
+ struct = Struct(name, symbol.ident, disguised)
self._typedefs_ns[symbol.ident] = struct
self._create_struct(symbol)
return struct