summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo J. A. M. Carneiro <gcarneiro@src.gnome.org>2004-08-16 13:46:17 +0000
committerGustavo J. A. M. Carneiro <gcarneiro@src.gnome.org>2004-08-16 13:46:17 +0000
commit926d8f604b528ac364d8e6ca4a05b53d56a6a87e (patch)
tree441bbcedfe306272ee4d7d8bd0d8be4e621c9bcf
parent2f76148cc63b9eafe2917b165243cb33d0abb520 (diff)
downloadpygtk-926d8f604b528ac364d8e6ca4a05b53d56a6a87e.tar.gz
honor caller-owns-return in property based constructors
-rw-r--r--ChangeLog6
-rw-r--r--codegen/codegen.py7
2 files changed, 12 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 988ab486..9fa48ed9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 }