summaryrefslogtreecommitdiff
path: root/gtk+-mingw/share/gtk-doc/html/gobject/howto-gobject-destruction.html
diff options
context:
space:
mode:
Diffstat (limited to 'gtk+-mingw/share/gtk-doc/html/gobject/howto-gobject-destruction.html')
-rw-r--r--gtk+-mingw/share/gtk-doc/html/gobject/howto-gobject-destruction.html122
1 files changed, 0 insertions, 122 deletions
diff --git a/gtk+-mingw/share/gtk-doc/html/gobject/howto-gobject-destruction.html b/gtk+-mingw/share/gtk-doc/html/gobject/howto-gobject-destruction.html
deleted file mode 100644
index 3a8b030..0000000
--- a/gtk+-mingw/share/gtk-doc/html/gobject/howto-gobject-destruction.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Object Destruction</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GObject Reference Manual">
-<link rel="up" href="howto-gobject.html" title="How to define and implement a new GObject">
-<link rel="prev" href="howto-gobject-construction.html" title="Object Construction">
-<link rel="next" href="howto-gobject-methods.html" title="Object methods">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="howto-gobject-construction.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="howto-gobject.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GObject Reference Manual</th>
-<td><a accesskey="n" href="howto-gobject-methods.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="sect1">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="howto-gobject-destruction"></a>Object Destruction</h2></div></div></div>
-<p>
- Again, it is often difficult to figure out which mechanism to use to
- hook into the object's destruction process: when the last
- <code class="function"><a class="link" href="gobject-The-Base-Object-Type.html#g-object-unref" title="g_object_unref ()">g_object_unref</a></code>
- function call is made, a lot of things happen as described in
- <a class="xref" href="gobject-memory.html#gobject-destruction-table" title="Table 5. g_object_unref">Table 5, “g_object_unref”</a>.
- </p>
-<p>
- The destruction process of your object might be split in two different
- phases: dispose and the finalize.
-</p>
-<pre class="programlisting">
-#define MAMAN_BAR_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), MAMAN_TYPE_BAR, MamanBarPrivate))
-
-struct _MamanBarPrivate
-{
- GObject *an_object;
-
- gchar *a_string;
-};
-
-G_DEFINE_TYPE (MamanBar, maman_bar, G_TYPE_OBJECT);
-
-static void
-maman_bar_dispose (GObject *gobject)
-{
- MamanBar *self = MAMAN_BAR (gobject);
-
- /*
- * In dispose, you are supposed to free all types referenced from this
- * object which might themselves hold a reference to self. Generally,
- * the most simple solution is to unref all members on which you own a
- * reference.
- */
-
- /* dispose might be called multiple times, so we must guard against
- * calling g_object_unref() on an invalid GObject.
- */
- if (self-&gt;priv-&gt;an_object)
- {
- g_object_unref (self-&gt;priv-&gt;an_object);
-
- self-&gt;priv-&gt;an_object = NULL;
- }
-
- /* Chain up to the parent class */
- G_OBJECT_CLASS (maman_bar_parent_class)-&gt;dispose (gobject);
-}
-
-static void
-maman_bar_finalize (GObject *gobject)
-{
- MamanBar *self = MAMAN_BAR (gobject);
-
- g_free (self-&gt;priv-&gt;a_string);
-
- /* Chain up to the parent class */
- G_OBJECT_CLASS (maman_bar_parent_class)-&gt;finalize (gobject);
-}
-
-static void
-maman_bar_class_init (MamanBarClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class-&gt;dispose = maman_bar_dispose;
- gobject_class-&gt;finalize = maman_bar_finalize;
-
- g_type_class_add_private (klass, sizeof (MamanBarPrivate));
-}
-
-static void
-maman_bar_init (MamanBar *self);
-{
- self-&gt;priv = MAMAN_BAR_GET_PRIVATE (self);
-
- self-&gt;priv-&gt;an_object = g_object_new (MAMAN_TYPE_BAZ, NULL);
- self-&gt;priv-&gt;a_string = g_strdup ("Maman");
-}
-</pre>
-<p>
- </p>
-<p>
- Add similar code to your GObject, make sure the code still builds
- and runs: dispose and finalize must be called during the last unref.
- </p>
-<p>
- It is possible that object methods might be invoked after dispose is
- run and before finalize runs. GObject does not consider this to be a
- program error: you must gracefully detect this and neither crash nor
- warn the user.
- </p>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.18</div>
-</body>
-</html> \ No newline at end of file