summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Dywan <christian@lanedo.com>2010-08-09 21:35:26 -0400
committerMatthias Clasen <mclasen@redhat.com>2010-08-09 23:14:14 -0400
commita11e4a58c0281d10192fe109101394ec7f526431 (patch)
tree80b9fc484eb875aa84b74beef1dc52b6a0b1bb86
parentfd352a10cab987ef923d35448834419fb7645dd1 (diff)
downloadgtk+-a11e4a58c0281d10192fe109101394ec7f526431.tar.gz
Clarify memory management of tree models
It helps to be explicit about these things. Bug 609264. (cherry picked from commit 2a12f74c8e8334d7b1f7629b99fd3e23f0f8a3af)
-rw-r--r--gtk/gtkliststore.c4
-rw-r--r--gtk/gtktreemodel.c4
-rw-r--r--gtk/gtktreestore.c4
3 files changed, 9 insertions, 3 deletions
diff --git a/gtk/gtkliststore.c b/gtk/gtkliststore.c
index 61b314d8c7..2aa41810e0 100644
--- a/gtk/gtkliststore.c
+++ b/gtk/gtkliststore.c
@@ -926,7 +926,9 @@ gtk_list_store_set_valist (GtkListStore *list_store,
* The list is terminated by a -1. For example, to set column 0 with type
* %G_TYPE_STRING to "Foo", you would write <literal>gtk_list_store_set (store, iter,
* 0, "Foo", -1)</literal>.
- * The value will be copied or referenced by the store if appropriate.
+ *
+ * The value will be referenced by the store if it is a %G_TYPE_OBJECT, and it
+ * will be copied if it is a %G_TYPE_STRING or %G_TYPE_BOXED.
**/
void
gtk_list_store_set (GtkListStore *list_store,
diff --git a/gtk/gtktreemodel.c b/gtk/gtktreemodel.c
index 84b0a81719..32a4e6fd65 100644
--- a/gtk/gtktreemodel.c
+++ b/gtk/gtktreemodel.c
@@ -1416,8 +1416,10 @@ gtk_tree_model_unref_node (GtkTreeModel *tree_model,
* write: <literal>gtk_tree_model_get (model, iter, 0, &amp;place_string_here, -1)</literal>,
* where <literal>place_string_here</literal> is a <type>gchar*</type> to be
* filled with the string.
- * If appropriate, the returned values have to be freed or unreferenced.
*
+ * Returned values with type %G_TYPE_OBJECT have to be unreferenced, values
+ * with type %G_TYPE_STRING or %G_TYPE_BOXED have to be freed. Other values are
+ * passed by value.
**/
void
gtk_tree_model_get (GtkTreeModel *tree_model,
diff --git a/gtk/gtktreestore.c b/gtk/gtktreestore.c
index dd5dce09ad..1dd4e0285e 100644
--- a/gtk/gtktreestore.c
+++ b/gtk/gtktreestore.c
@@ -1073,7 +1073,9 @@ gtk_tree_store_set_valist (GtkTreeStore *tree_store,
* The list is terminated by a -1. For example, to set column 0 with type
* %G_TYPE_STRING to "Foo", you would write
* <literal>gtk_tree_store_set (store, iter, 0, "Foo", -1)</literal>.
- * The value will be copied or referenced by the store if appropriate.
+ *
+ * The value will be referenced by the store if it is a %G_TYPE_OBJECT, and it
+ * will be copied if it is a %G_TYPE_STRING or %G_TYPE_BOXED.
**/
void
gtk_tree_store_set (GtkTreeStore *tree_store,