]> Pileus Git - ~andy/gtk/blobdiff - docs/refcounting.txt
bgo#514843 - [filechooser] Deal with corrupted .gtk-bookmarks gracefully
[~andy/gtk] / docs / refcounting.txt
index 7130f1654cddb6fdebf09b52b7c79a931ad40d51..806940096f1b20a54a021717980ed60d3c5607ac 100644 (file)
@@ -15,17 +15,17 @@ functions that follow these conventions:
 GtkObjects also provide the following functions:
 
   *_destroy:  Render an object `unusable', but as long as there are
-              references to it, it's allocated memory will not be freed.
+              references to it, its allocated memory will not be freed.
   *_sink:     Clear a GtkObjects `floating' state and decrement the
              reference count by 1.
 
 GdkWindow
 ---------
 
-A GdkWindow has to be explicitely destroyed with gdk_window_destroy.
+A GdkWindow has to be explicitly destroyed with gdk_window_destroy.
 This will send out a request to destroy this window and all its
 children, and will decrement the ref_count of the GdkWindow by one.
-Thus, it releases the inital reference created by gdk_window_new.
+Thus, it releases the initial reference created by gdk_window_new.
 
 All GdkWindows are kept in a hash table to translate from their XId to
 the actual structure and the pointer in the hash table is reflected in
@@ -62,7 +62,7 @@ GdkVisual
 ---------
 
 There are no *_new or *_destroy functions and the *_ref and *_unref
-functions are noops.  GdkVisuals are static structures and thus do not
+functions are no-ops.  GdkVisuals are static structures and thus do not
 need reference counting.  The ref counting functions are only there
 for extra defensive programming.
 
@@ -197,7 +197,7 @@ GtkOptionMenu looks like this:
   /* menu_item->ref_count == 1 and it is flagged as `floating'.
    */
 
-  gtk_menu_append (GTK_MENU (menu), menu_item);
+  gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
   /* menu_item->ref_count still == 1, but it is no longer `floating'.
    */
   
@@ -220,13 +220,13 @@ Then, when the user wants to get rid of the window:
   /* The GdkWindow of `window' and all its child GdkWindows are
    * destroyed.
    *
-   * window is unregistered from the loplevel list and its ref_count
-   * drops to zero.  The destroy code of `window' destroyes `option_menu'.
+   * window is unregistered from the toplevel list and its ref_count
+   * drops to zero.  The destroy code of `window' destroys `option_menu'.
    *
    * The destroy code of `option_menu' causes the `menu' to be detached
    * from it and its reference count drops to zero.
    *
-   * The destroy code of `menu' destroyes `menu_item'.
+   * The destroy code of `menu' destroys `menu_item'.
    *
    * The destruction of `menu_item' removes it from its parent, the
    * menu_item->ref_count drops to zero and `menu_item' is finalized (freed).
@@ -240,22 +240,22 @@ Taking care of proper referencing
 ---------------------------------
 
 There are some cases where referencing of widgets from outside the toolkit
-(on the application side is needed).
-Once the application performes an operation on a widget that will cause
+(on the application side) is needed.
+Once the application performs an operation on a widget that will cause
 its reference count to drop, if it wants to take further actions on the
 widget, it needs to hold a reference to it.
 
 Example code sequences that require reference wraps:
 
    /* gtk_container_remove() will unparent the child and therefore
-    * cause it's reference count to be decremented by one.
+    * cause its reference count to be decremented by one.
     */
-   gtk_widget_ref (widget);
+   g_object_ref (widget);
    gtk_container_remove (container, widget);
    /* without the reference count, the widget would have been destroyed here.
    */
    gtk_container_add (container, widget);
-   gtk_widget_unref (widget);
+   g_object_unref (widget);
 
 
   /* all items in item_list need to be referenced
@@ -267,7 +267,7 @@ Example code sequences that require reference wraps:
    slist = NULL;
    for (list = item_list; list; list = list->next)
    {
-     gtk_widget_ref (GTK_WIDGET (list->data));
+     g_object_ref (GTK_WIDGET (list->data));
      slist = g_slist_prepend (slist, list->data);
    }
    gtk_list_remove_items (list, item_list);
@@ -280,7 +280,7 @@ Example code sequences that require reference wraps:
      
      tmp = slist;
      slist = slist->next;
-     gtk_widget_unref (GTK_WIDGET (tmp->data));
+     g_object_unref (GTK_WIDGET (tmp->data));
      g_slist_free_1 (tmp);
    }