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);
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);