diff options
author | Gustavo J. A. M. Carneiro <gcarneiro@src.gnome.org> | 2004-08-16 13:46:17 +0000 |
---|---|---|
committer | Gustavo J. A. M. Carneiro <gcarneiro@src.gnome.org> | 2004-08-16 13:46:17 +0000 |
commit | 926d8f604b528ac364d8e6ca4a05b53d56a6a87e (patch) | |
tree | 441bbcedfe306272ee4d7d8bd0d8be4e621c9bcf | |
parent | 2f76148cc63b9eafe2917b165243cb33d0abb520 (diff) | |
download | pygtk-926d8f604b528ac364d8e6ca4a05b53d56a6a87e.tar.gz |
honor caller-owns-return in property based constructors
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | codegen/codegen.py | 7 |
2 files changed, 12 insertions, 1 deletions
@@ -1,3 +1,9 @@ +2004-08-16 Gustavo J. A. M. Carneiro <gustavo@users.sourceforge.net> + + * codegen/codegen.py + (GObjectWrapper.write_property_based_constructor): honor flag + caller-owns-return. + 2004-08-14 John Finlay <finlay@moeraki.com> * gobject/pygenum.c (pyg_enum_repr) Match enum values to avoid diff --git a/codegen/codegen.py b/codegen/codegen.py index edda2f1b..65e70479 100644 --- a/codegen/codegen.py +++ b/codegen/codegen.py @@ -617,7 +617,12 @@ class GObjectWrapper(Wrapper): ' if (!self->obj) {\n' \ ' PyErr_SetString(PyExc_RuntimeError, "could not create %(typename)s object");\n' \ ' return -1;\n' \ - ' }\n' \ + ' }\n' + + if not constructor.caller_owns_return: + print >> out, " g_object_ref(self->obj);\n" + + print >> out, \ ' pygobject_register_wrapper((PyObject *)self);\n' \ ' return 0;\n' \ '}\n\n' % { 'typename': classname } |