[seed] libseed: Constructor sometimes steals a ref to non INITIALLY_UNOWNED objects
- From: Robert Carr <racarr src gnome org>
- To: svn-commits-list gnome org
- Subject: [seed] libseed: Constructor sometimes steals a ref to non INITIALLY_UNOWNED objects
- Date: Wed, 20 May 2009 02:49:36 -0400 (EDT)
commit 31b783239a3f4145f6d1061e2f6ff4711455921c
Author: Robert Carr <racarr svn gnome org>
Date: Wed May 20 02:48:17 2009 -0400
libseed: Constructor sometimes steals a ref to non INITIALLY_UNOWNED objects
---
libseed/seed-engine.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/libseed/seed-engine.c b/libseed/seed-engine.c
index 25ec6cf..15ef966 100644
--- a/libseed/seed-engine.c
+++ b/libseed/seed-engine.c
@@ -196,8 +196,11 @@ seed_gobject_constructor_invoked (JSContextRef ctx,
gobject = g_object_newv (type, nparams, params);
- if (G_IS_INITIALLY_UNOWNED (gobject))
- g_object_ref_sink (gobject);
+ if (G_IS_INITIALLY_UNOWNED (gobject) &&
+ !g_object_is_floating(gobject))
+ g_object_ref(gobject);
+ else if (g_object_is_floating(gobject))
+ g_object_ref_sink(gobject);
if (!gobject)
ret = (JSObjectRef) JSValueMakeNull (ctx);
@@ -209,8 +212,7 @@ seed_gobject_constructor_invoked (JSContextRef ctx,
g_value_unset (¶ms[i].value);
}
- if (G_IS_INITIALLY_UNOWNED (gobject))
- g_object_unref (gobject);
+ g_object_unref (gobject);
g_type_class_unref (oclass);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]