add clarification stating that the construct_child function is responsible

2006-11-26  Ryan Lortie  <desrt@desrt.ca>

        * docs/reference/gtk/tmpl/gtkbuildable.sgml: add clarification stating
        that the construct_child function is responsible for returning a
        reference.
        * gtkbuilder.c (_gtk_builder_construct): remove g_object_ref() for
        objects from constructors
        * gtkuimanager.c (gtk_ui_manager_buildable_construct_child): add
        g_object_ref() to this construction function (it's the only
        implementer in GTK)

        Fixes #496645.


svn path=/trunk/; revision=19075
This commit is contained in:
Ryan Lortie 2007-11-27 03:25:09 +00:00 committed by Ryan Lortie
parent 490af125c2
commit 08e15bbbae
4 changed files with 16 additions and 3 deletions

View File

@ -1,3 +1,16 @@
2006-11-26 Ryan Lortie <desrt@desrt.ca>
* docs/reference/gtk/tmpl/gtkbuildable.sgml: add clarification stating
that the construct_child function is responsible for returning a
reference.
* gtkbuilder.c (_gtk_builder_construct): remove g_object_ref() for
objects from constructors
* gtkuimanager.c (gtk_ui_manager_buildable_construct_child): add
g_object_ref() to this construction function (it's the only
implementer in GTK)
Fixes #496645.
2006-11-26 Ryan Lortie <desrt@desrt.ca> 2006-11-26 Ryan Lortie <desrt@desrt.ca>
* gtkbuilder.c: remove concept of root objects and just refcount * gtkbuilder.c: remove concept of root objects and just refcount

View File

@ -61,7 +61,8 @@ a GtkBuilder UI definition.
@construct_child: Constructs a child of a buildable that has been @construct_child: Constructs a child of a buildable that has been
specified as "constructor" in the UI definition. #GtkUIManager implements specified as "constructor" in the UI definition. #GtkUIManager implements
this to reference to a widget created in a &lt;ui&gt; tag which is outside this to reference to a widget created in a &lt;ui&gt; tag which is outside
of the normal GtkBuilder UI definition hierarchy. of the normal GtkBuilder UI definition hierarchy. A reference to the
constructed object is returned and becomes owned by the caller.
@custom_tag_start: Implement this if the buildable needs to parse @custom_tag_start: Implement this if the buildable needs to parse
content below &lt;child&gt;. To handle an element, the implementation content below &lt;child&gt;. To handle an element, the implementation
must fill in the @parser structure and @user_data and return %TRUE. must fill in the @parser structure and @user_data and return %TRUE.

View File

@ -402,7 +402,6 @@ _gtk_builder_construct (GtkBuilder *builder,
g_assert (obj != NULL); g_assert (obj != NULL);
if (construct_parameters->len) if (construct_parameters->len)
g_warning ("Can't pass in construct-only parameters to %s", info->id); g_warning ("Can't pass in construct-only parameters to %s", info->id);
g_object_ref (obj);
} }
else if (info->parent && ((ChildInfo*)info->parent)->internal_child != NULL) else if (info->parent && ((ChildInfo*)info->parent)->internal_child != NULL)
{ {

View File

@ -497,7 +497,7 @@ gtk_ui_manager_buildable_construct_child (GtkBuildable *buildable,
g_signal_connect (widget, "hierarchy-changed", g_signal_connect (widget, "hierarchy-changed",
G_CALLBACK (child_hierarchy_changed_cb), G_CALLBACK (child_hierarchy_changed_cb),
GTK_UI_MANAGER (buildable)); GTK_UI_MANAGER (buildable));
return G_OBJECT (widget); return g_object_ref (widget);
} }
static void static void