summaryrefslogtreecommitdiffstats
path: root/gobject/pygobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'gobject/pygobject.c')
-rw-r--r--gobject/pygobject.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gobject/pygobject.c b/gobject/pygobject.c
index 27f82f6..f889bc5 100644
--- a/gobject/pygobject.c
+++ b/gobject/pygobject.c
@@ -648,6 +648,10 @@ static inline void
pygobject_switch_to_toggle_ref(PyGObject *self)
{
g_assert(self->obj->ref_count >= 1);
+
+ if (self->private.flags & PYGOBJECT_USING_TOGGLE_REF)
+ return; /* already using toggle ref */
+ self->private.flags |= PYGOBJECT_USING_TOGGLE_REF;
/* Note that add_toggle_ref will never immediately call back into
pyg_toggle_notify */
Py_INCREF((PyObject *) self);