summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon van der Linden <svdlinden@src.gnome.org>2009-11-07 23:42:07 +0100
committerSimon van der Linden <svdlinden@src.gnome.org>2009-11-09 13:41:20 +0100
commit6a69288941e65312fe82649ec72d2f21b2dc618f (patch)
tree03f4fbcb2e3cb6a7de12a36cf2d5027c9ed15122
parent000f7c36e667c6e078e3370769ea868e56a1b4ee (diff)
downloadpygobject-6a69288941e65312fe82649ec72d2f21b2dc618f.tar.gz
pygobject-6a69288941e65312fe82649ec72d2f21b2dc618f.tar.xz
pygobject-6a69288941e65312fe82649ec72d2f21b2dc618f.zip
Create instances by calling tp_alloc rather than PyObject_NEW
PyObject_NEW calls a generic allocator and should only be called by tp_new, knowing that the type's free function agrees. In pyg_boxed_new, we may allocate PyGBoxed subtypes, so the subtype's allocation function must be called instead.
-rw-r--r--gobject/pygboxed.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gobject/pygboxed.c b/gobject/pygboxed.c
index 8a4c8a8..1233b01 100644
--- a/gobject/pygboxed.c
+++ b/gobject/pygboxed.c
@@ -194,7 +194,8 @@ pyg_boxed_new(GType boxed_type, gpointer boxed, gboolean copy_boxed,
if (!tp)
tp = (PyTypeObject *)&PyGBoxed_Type; /* fallback */
- self = PyObject_NEW(PyGBoxed, tp);
+
+ self = (PyGBoxed *)tp->tp_alloc(tp, 0);
if (self == NULL) {
pyglib_gil_state_release(state);