[gtk+] Clarify memory management of tree models



commit 2a12f74c8e8334d7b1f7629b99fd3e23f0f8a3af
Author: Christian Dywan <christian lanedo com>
Date:   Mon Aug 9 21:35:26 2010 -0400

    Clarify memory management of tree models
    
    It helps to be explicit about these things.
    Bug 609264.

 gtk/gtkliststore.c |    4 +++-
 gtk/gtktreemodel.c |    4 +++-
 gtk/gtktreestore.c |    4 +++-
 3 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/gtk/gtkliststore.c b/gtk/gtkliststore.c
index a42daaa..b8b01f6 100644
--- a/gtk/gtkliststore.c
+++ b/gtk/gtkliststore.c
@@ -986,7 +986,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 192a069..b38d592 100644
--- a/gtk/gtktreemodel.c
+++ b/gtk/gtktreemodel.c
@@ -1415,8 +1415,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 4570007..7047dfb 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,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]