[gobject-introspection/wip/transformer] A few fixes for Map



commit c36cddfff3ef347f5b2413cb9920c8f405d6d05b
Author: Colin Walters <walters verbum org>
Date:   Thu Jul 29 19:43:01 2010 -0400

    A few fixes for Map

 giscanner/ast.py         |    6 +++---
 giscanner/girwriter.py   |    2 +-
 giscanner/transformer.py |    2 ++
 3 files changed, 6 insertions(+), 4 deletions(-)
---
diff --git a/giscanner/ast.py b/giscanner/ast.py
index f9e9084..6f273f9 100755
--- a/giscanner/ast.py
+++ b/giscanner/ast.py
@@ -553,15 +553,15 @@ class List(Type):
 
 class Map(Type):
 
-    def __init__(self, ctype, key_type, value_type, **kwargs):
-        Type.__init__(self, ctype=ctype, target_fundamental='<map>')
+    def __init__(self, key_type, value_type, **kwargs):
+        Type.__init__(self, target_fundamental='<map>', **kwargs)
         assert isinstance(key_type, Type)
         self.key_type = key_type
         assert isinstance(value_type, Type)
         self.value_type = value_type
 
     def clone(self):
-        m = Map(self.ctype, self.key_type, self.value_type)
+        m = Map(self.key_type, self.value_type)
         return m
 
 class Alias(Node):
diff --git a/giscanner/girwriter.py b/giscanner/girwriter.py
index 5b2bccf..17f1f81 100644
--- a/giscanner/girwriter.py
+++ b/giscanner/girwriter.py
@@ -422,7 +422,7 @@ and/or use gtk-doc annotations. ''')
         self._write_callable(vf, 'virtual-method', attrs)
 
     def _write_callback(self, callback):
-        attrs = [('c:type', callback.ctype)]
+        attrs = [('c:type', callback.c_name)]
         self._write_callable(callback, 'callback', attrs)
 
     def _boxed_attrs(self, boxed):
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index 36d88ec..c99f4ec 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -537,6 +537,8 @@ or raise ValueError."""
         elif base in ('GArray', 'GPtrArray', 'GByteArray'):
             return Array('GLib.' + base[1:], TYPE_ANY, ctype=ctype,
                          is_const=is_const) 
+        elif base == 'GLib.HashTable':
+            return Map(TYPE_ANY, TYPE_ANY, ctype=ctype, is_const=is_const)
         return Type(ctype=ctype, is_const=is_const)
 
     def _create_parameter(self, symbol):



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]