+GLIB_AVAILABLE_IN_ALL
+void g_clear_object (volatile GObject **object_ptr);
+#define g_clear_object(object_ptr) g_clear_pointer ((object_ptr), g_object_unref)
+
+typedef struct {
+ /*<private>*/
+ union { gpointer p; } priv;
+} GWeakRef;
+
+GLIB_AVAILABLE_IN_ALL
+void g_weak_ref_init (GWeakRef *weak_ref,
+ gpointer object);
+GLIB_AVAILABLE_IN_ALL
+void g_weak_ref_clear (GWeakRef *weak_ref);
+GLIB_AVAILABLE_IN_ALL
+gpointer g_weak_ref_get (GWeakRef *weak_ref);
+GLIB_AVAILABLE_IN_ALL
+void g_weak_ref_set (GWeakRef *weak_ref,
+ gpointer object);
+