Coverage Report

Created: 2025-06-13 06:55

/src/glib/gobject/gobject.h
Line
Count
Source (jump to first uncovered line)
1
/* GObject - GLib Type, Object, Parameter and Signal Library
2
 * Copyright (C) 1998-1999, 2000-2001 Tim Janik and Red Hat, Inc.
3
 *
4
 * SPDX-License-Identifier: LGPL-2.1-or-later
5
 *
6
 * This library is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Lesser General Public
8
 * License as published by the Free Software Foundation; either
9
 * version 2.1 of the License, or (at your option) any later version.
10
 *
11
 * This library is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 * Lesser General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Lesser General
17
 * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
18
 */
19
#ifndef __G_OBJECT_H__
20
#define __G_OBJECT_H__
21
22
#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
23
#error "Only <glib-object.h> can be included directly."
24
#endif
25
26
#include        <gobject/gtype.h>
27
#include        <gobject/gvalue.h>
28
#include        <gobject/gparam.h>
29
#include        <gobject/gclosure.h>
30
#include        <gobject/gsignal.h>
31
#include        <gobject/gboxed.h>
32
33
G_BEGIN_DECLS
34
35
/* --- type macros --- */
36
/**
37
 * G_TYPE_IS_OBJECT:
38
 * @type: Type id to check
39
 * 
40
 * Check if the passed in type id is a %G_TYPE_OBJECT or derived from it.
41
 * 
42
 * Returns: %FALSE or %TRUE, indicating whether @type is a %G_TYPE_OBJECT.
43
 */
44
0
#define G_TYPE_IS_OBJECT(type)      (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT)
45
/**
46
 * G_OBJECT:
47
 * @object: Object which is subject to casting.
48
 * 
49
 * Casts a #GObject or derived pointer into a (GObject*) pointer.
50
 *
51
 * Depending on the current debugging level, this function may invoke
52
 * certain runtime checks to identify invalid casts.
53
 */
54
0
#define G_OBJECT(object)            (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
55
/**
56
 * G_OBJECT_CLASS:
57
 * @class: a valid #GObjectClass
58
 * 
59
 * Casts a derived #GObjectClass structure into a #GObjectClass structure.
60
 */
61
2.32k
#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
62
/**
63
 * G_IS_OBJECT:
64
 * @object: Instance to check for being a %G_TYPE_OBJECT.
65
 * 
66
 * Checks whether a valid #GTypeInstance pointer is of type %G_TYPE_OBJECT.
67
 */
68
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_42
69
0
#define G_IS_OBJECT(object)         (G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE ((object), G_TYPE_OBJECT))
70
#else
71
#define G_IS_OBJECT(object)         (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_OBJECT))
72
#endif
73
/**
74
 * G_IS_OBJECT_CLASS:
75
 * @class: a #GObjectClass
76
 * 
77
 * Checks whether @class "is a" valid #GObjectClass structure of type
78
 * %G_TYPE_OBJECT or derived.
79
 */
80
2
#define G_IS_OBJECT_CLASS(class)    (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))
81
/**
82
 * G_OBJECT_GET_CLASS:
83
 * @object: a #GObject instance.
84
 * 
85
 * Get the class structure associated to a #GObject instance.
86
 *
87
 * Returns: pointer to object class structure.
88
 */
89
4.00k
#define G_OBJECT_GET_CLASS(object)  (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
90
/**
91
 * G_OBJECT_TYPE:
92
 * @object: Object to return the type id for.
93
 * 
94
 * Get the type id of an object.
95
 * 
96
 * Returns: Type id of @object.
97
 */
98
0
#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
99
/**
100
 * G_OBJECT_TYPE_NAME:
101
 * @object: Object to return the type name for.
102
 * 
103
 * Get the name of an object's type.
104
 * 
105
 * Returns: Type name of @object. The string is owned by the type system and 
106
 *  should not be freed.
107
 */
108
0
#define G_OBJECT_TYPE_NAME(object)  (g_type_name (G_OBJECT_TYPE (object)))
109
/**
110
 * G_OBJECT_CLASS_TYPE:
111
 * @class: a valid #GObjectClass
112
 * 
113
 * Get the type id of a class structure.
114
 * 
115
 * Returns: Type id of @class.
116
 */
117
8
#define G_OBJECT_CLASS_TYPE(class)  (G_TYPE_FROM_CLASS (class))
118
/**
119
 * G_OBJECT_CLASS_NAME:
120
 * @class: a valid #GObjectClass
121
 * 
122
 * Return the name of a class structure's type.
123
 * 
124
 * Returns: Type name of @class. The string is owned by the type system and 
125
 *  should not be freed.
126
 */
127
#define G_OBJECT_CLASS_NAME(class)  (g_type_name (G_OBJECT_CLASS_TYPE (class)))
128
/**
129
 * G_VALUE_HOLDS_OBJECT:
130
 * @value: a valid #GValue structure
131
 * 
132
 * Checks whether the given #GValue can hold values derived from type %G_TYPE_OBJECT.
133
 * 
134
 * Returns: %TRUE on success.
135
 */
136
0
#define G_VALUE_HOLDS_OBJECT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_OBJECT))
137
138
/* --- type macros --- */
139
/**
140
 * G_TYPE_INITIALLY_UNOWNED:
141
 * 
142
 * The type for #GInitiallyUnowned.
143
 */
144
0
#define G_TYPE_INITIALLY_UNOWNED        (g_initially_unowned_get_type())
145
/**
146
 * G_INITIALLY_UNOWNED:
147
 * @object: Object which is subject to casting.
148
 * 
149
 * Casts a #GInitiallyUnowned or derived pointer into a (GInitiallyUnowned*) 
150
 * pointer.
151
 *
152
 * Depending on the current debugging level, this function may invoke
153
 * certain runtime checks to identify invalid casts.
154
 */
155
#define G_INITIALLY_UNOWNED(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnowned))
156
/**
157
 * G_INITIALLY_UNOWNED_CLASS:
158
 * @class: a valid #GInitiallyUnownedClass
159
 * 
160
 * Casts a derived #GInitiallyUnownedClass structure into a
161
 * #GInitiallyUnownedClass structure.
162
 */
163
#define G_INITIALLY_UNOWNED_CLASS(class)      (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass))
164
/**
165
 * G_IS_INITIALLY_UNOWNED:
166
 * @object: Instance to check for being a %G_TYPE_INITIALLY_UNOWNED.
167
 * 
168
 * Checks whether a valid #GTypeInstance pointer is of type %G_TYPE_INITIALLY_UNOWNED.
169
 */
170
#define G_IS_INITIALLY_UNOWNED(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_INITIALLY_UNOWNED))
171
/**
172
 * G_IS_INITIALLY_UNOWNED_CLASS:
173
 * @class: a #GInitiallyUnownedClass
174
 * 
175
 * Checks whether @class "is a" valid #GInitiallyUnownedClass structure of type
176
 * %G_TYPE_INITIALLY_UNOWNED or derived.
177
 */
178
#define G_IS_INITIALLY_UNOWNED_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_INITIALLY_UNOWNED))
179
/**
180
 * G_INITIALLY_UNOWNED_GET_CLASS:
181
 * @object: a #GInitiallyUnowned instance.
182
 * 
183
 * Get the class structure associated to a #GInitiallyUnowned instance.
184
 *
185
 * Returns: pointer to object class structure.
186
 */
187
#define G_INITIALLY_UNOWNED_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass))
188
/* GInitiallyUnowned ia a GObject with initially floating reference count */
189
190
191
/* --- typedefs & structures --- */
192
typedef struct _GObject                  GObject;
193
typedef struct _GObjectClass             GObjectClass;
194
typedef struct _GObject                  GInitiallyUnowned;
195
typedef struct _GObjectClass             GInitiallyUnownedClass;
196
typedef struct _GObjectConstructParam    GObjectConstructParam;
197
/**
198
 * GObjectGetPropertyFunc:
199
 * @object: a #GObject
200
 * @property_id: the numeric id under which the property was registered with
201
 *  g_object_class_install_property().
202
 * @value: a #GValue to return the property value in
203
 * @pspec: the #GParamSpec describing the property
204
 * 
205
 * The type of the @get_property function of #GObjectClass. 
206
 */
207
typedef void (*GObjectGetPropertyFunc)  (GObject      *object,
208
                                         guint         property_id,
209
                                         GValue       *value,
210
                                         GParamSpec   *pspec);
211
/**
212
 * GObjectSetPropertyFunc:
213
 * @object: a #GObject
214
 * @property_id: the numeric id under which the property was registered with
215
 *  g_object_class_install_property().
216
 * @value: the new value for the property
217
 * @pspec: the #GParamSpec describing the property
218
 * 
219
 * The type of the @set_property function of #GObjectClass. 
220
 */
221
typedef void (*GObjectSetPropertyFunc)  (GObject      *object,
222
                                         guint         property_id,
223
                                         const GValue *value,
224
                                         GParamSpec   *pspec);
225
/**
226
 * GObjectFinalizeFunc:
227
 * @object: the #GObject being finalized
228
 * 
229
 * The type of the @finalize function of #GObjectClass.
230
 */
231
typedef void (*GObjectFinalizeFunc)     (GObject      *object);
232
/**
233
 * GWeakNotify:
234
 * @data: data that was provided when the weak reference was established
235
 * @where_the_object_was: the object being disposed
236
 * 
237
 * A #GWeakNotify function can be added to an object as a callback that gets
238
 * triggered when the object is finalized.
239
 *
240
 * Since the object is already being disposed when the #GWeakNotify is called,
241
 * there's not much you could do with the object, apart from e.g. using its
242
 * address as hash-index or the like.
243
 *
244
 * In particular, this means it’s invalid to call g_object_ref(),
245
 * g_weak_ref_init(), g_weak_ref_set(), g_object_add_toggle_ref(),
246
 * g_object_weak_ref(), g_object_add_weak_pointer() or any function which calls
247
 * them on the object from this callback.
248
 */
249
typedef void (*GWeakNotify)   (gpointer      data,
250
           GObject      *where_the_object_was);
251
/**
252
 * GObject:
253
 *
254
 * The base object type.
255
 * 
256
 * All the fields in the `GObject` structure are private to the implementation
257
 * and should never be accessed directly.
258
 *
259
 * Since GLib 2.72, all #GObjects are guaranteed to be aligned to at least the
260
 * alignment of the largest basic GLib type (typically this is #guint64 or
261
 * #gdouble). If you need larger alignment for an element in a #GObject, you
262
 * should allocate it on the heap (aligned), or arrange for your #GObject to be
263
 * appropriately padded. This guarantee applies to the #GObject (or derived)
264
 * struct, the #GObjectClass (or derived) struct, and any private data allocated
265
 * by G_ADD_PRIVATE().
266
 */
267
struct  _GObject
268
{
269
  GTypeInstance  g_type_instance;
270
  
271
  /*< private >*/
272
  guint          ref_count;  /* (atomic) */
273
  GData         *qdata;
274
};
275
/**
276
 * GObjectClass:
277
 * @g_type_class: the parent class
278
 * @constructor: the @constructor function is called by g_object_new () to 
279
 *  complete the object initialization after all the construction properties are
280
 *  set. The first thing a @constructor implementation must do is chain up to the
281
 *  @constructor of the parent class. Overriding @constructor should be rarely 
282
 *  needed, e.g. to handle construct properties, or to implement singletons.
283
 * @set_property: the generic setter for all properties of this type. Should be
284
 *  overridden for every type with properties. If implementations of
285
 *  @set_property don't emit property change notification explicitly, this will
286
 *  be done implicitly by the type system. However, if the notify signal is
287
 *  emitted explicitly, the type system will not emit it a second time.
288
 * @get_property: the generic getter for all properties of this type. Should be
289
 *  overridden for every type with properties.
290
 * @dispose: the @dispose function is supposed to drop all references to other 
291
 *  objects, but keep the instance otherwise intact, so that client method 
292
 *  invocations still work. It may be run multiple times (due to reference 
293
 *  loops). Before returning, @dispose should chain up to the @dispose method 
294
 *  of the parent class.
295
 * @finalize: instance finalization function, should finish the finalization of 
296
 *  the instance begun in @dispose and chain up to the @finalize method of the 
297
 *  parent class.
298
 * @dispatch_properties_changed: emits property change notification for a bunch
299
 *  of properties. Overriding @dispatch_properties_changed should be rarely 
300
 *  needed.
301
 * @notify: the class closure for the notify signal
302
 * @constructed: the @constructed function is called by g_object_new() as the
303
 *  final step of the object creation process.  At the point of the call, all
304
 *  construction properties have been set on the object.  The purpose of this
305
 *  call is to allow for object initialisation steps that can only be performed
306
 *  after construction properties have been set.  @constructed implementors
307
 *  should chain up to the @constructed call of their parent class to allow it
308
 *  to complete its initialisation.
309
 * 
310
 * The class structure for the GObject type.
311
 * 
312
 * |[<!-- language="C" -->
313
 * // Example of implementing a singleton using a constructor.
314
 * static MySingleton *the_singleton = NULL;
315
 * 
316
 * static GObject*
317
 * my_singleton_constructor (GType                  type,
318
 *                           guint                  n_construct_params,
319
 *                           GObjectConstructParam *construct_params)
320
 * {
321
 *   GObject *object;
322
 *   
323
 *   if (!the_singleton)
324
 *     {
325
 *       object = G_OBJECT_CLASS (parent_class)->constructor (type,
326
 *                                                            n_construct_params,
327
 *                                                            construct_params);
328
 *       the_singleton = MY_SINGLETON (object);
329
 *     }
330
 *   else
331
 *     object = g_object_ref (G_OBJECT (the_singleton));
332
 * 
333
 *   return object;
334
 * }
335
 * ]|
336
 */
337
struct  _GObjectClass
338
{
339
  GTypeClass   g_type_class;
340
341
  /*< private >*/
342
  GSList      *construct_properties;
343
344
  /*< public >*/
345
  /* seldom overridden */
346
  GObject*   (*constructor)     (GType                  type,
347
                                 guint                  n_construct_properties,
348
                                 GObjectConstructParam *construct_properties);
349
  /* overridable methods */
350
  void       (*set_property)    (GObject        *object,
351
                                         guint           property_id,
352
                                         const GValue   *value,
353
                                         GParamSpec     *pspec);
354
  void       (*get_property)    (GObject        *object,
355
                                         guint           property_id,
356
                                         GValue         *value,
357
                                         GParamSpec     *pspec);
358
  void       (*dispose)     (GObject        *object);
359
  void       (*finalize)    (GObject        *object);
360
  /* seldom overridden */
361
  void       (*dispatch_properties_changed) (GObject      *object,
362
               guint     n_pspecs,
363
               GParamSpec  **pspecs);
364
  /* signals */
365
  void       (*notify)      (GObject  *object,
366
           GParamSpec *pspec);
367
368
  /* called when done constructing */
369
  void       (*constructed)   (GObject  *object);
370
371
  /*< private >*/
372
  gsize   flags;
373
374
  gsize         n_construct_properties;
375
376
  gpointer pspecs;
377
  gsize n_pspecs;
378
379
  /* padding */
380
  gpointer  pdummy[3];
381
};
382
383
/**
384
 * GObjectConstructParam:
385
 * @pspec: the #GParamSpec of the construct parameter
386
 * @value: the value to set the parameter to
387
 * 
388
 * The GObjectConstructParam struct is an auxiliary structure used to hand
389
 * #GParamSpec/#GValue pairs to the @constructor of a #GObjectClass.
390
 */
391
struct _GObjectConstructParam
392
{
393
  GParamSpec *pspec;
394
  GValue     *value;
395
};
396
397
/**
398
 * GInitiallyUnowned:
399
 *
400
 * A type for objects that have an initially floating reference.
401
 * 
402
 * All the fields in the `GInitiallyUnowned` structure are private to the
403
 * implementation and should never be accessed directly.
404
 */
405
/**
406
 * GInitiallyUnownedClass:
407
 * 
408
 * The class structure for the GInitiallyUnowned type.
409
 */
410
411
412
/* --- prototypes --- */
413
GOBJECT_AVAILABLE_IN_ALL
414
GType       g_initially_unowned_get_type      (void);
415
GOBJECT_AVAILABLE_IN_ALL
416
void        g_object_class_install_property   (GObjectClass   *oclass,
417
                 guint           property_id,
418
                 GParamSpec     *pspec);
419
GOBJECT_AVAILABLE_IN_ALL
420
GParamSpec* g_object_class_find_property      (GObjectClass   *oclass,
421
                 const gchar    *property_name);
422
GOBJECT_AVAILABLE_IN_ALL
423
GParamSpec**g_object_class_list_properties    (GObjectClass   *oclass,
424
                 guint        *n_properties);
425
GOBJECT_AVAILABLE_IN_ALL
426
void        g_object_class_override_property  (GObjectClass   *oclass,
427
                 guint           property_id,
428
                 const gchar    *name);
429
GOBJECT_AVAILABLE_IN_ALL
430
void        g_object_class_install_properties (GObjectClass   *oclass,
431
                                               guint           n_pspecs,
432
                                               GParamSpec    **pspecs);
433
434
GOBJECT_AVAILABLE_IN_ALL
435
void        g_object_interface_install_property (gpointer     g_iface,
436
             GParamSpec  *pspec);
437
GOBJECT_AVAILABLE_IN_ALL
438
GParamSpec* g_object_interface_find_property    (gpointer     g_iface,
439
             const gchar *property_name);
440
GOBJECT_AVAILABLE_IN_ALL
441
GParamSpec**g_object_interface_list_properties  (gpointer     g_iface,
442
             guint       *n_properties_p);
443
444
GOBJECT_AVAILABLE_IN_ALL
445
GType       g_object_get_type                 (void) G_GNUC_CONST;
446
GOBJECT_AVAILABLE_IN_ALL
447
gpointer    g_object_new                      (GType           object_type,
448
                 const gchar    *first_property_name,
449
                 ...);
450
GOBJECT_AVAILABLE_IN_2_54
451
GObject*    g_object_new_with_properties      (GType           object_type,
452
                                               guint           n_properties,
453
                                               const char     *names[],
454
                                               const GValue    values[]);
455
456
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
457
458
GOBJECT_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties)
459
gpointer    g_object_newv         (GType           object_type,
460
                 guint         n_parameters,
461
                 GParameter     *parameters);
462
463
G_GNUC_END_IGNORE_DEPRECATIONS
464
465
GOBJECT_AVAILABLE_IN_ALL
466
GObject*    g_object_new_valist               (GType           object_type,
467
                 const gchar    *first_property_name,
468
                 va_list         var_args);
469
GOBJECT_AVAILABLE_IN_ALL
470
void      g_object_set                      (gpointer        object,
471
                 const gchar    *first_property_name,
472
                 ...) G_GNUC_NULL_TERMINATED;
473
GOBJECT_AVAILABLE_IN_ALL
474
void        g_object_get                      (gpointer        object,
475
                 const gchar    *first_property_name,
476
                 ...) G_GNUC_NULL_TERMINATED;
477
GOBJECT_AVAILABLE_IN_ALL
478
gpointer    g_object_connect                  (gpointer        object,
479
                 const gchar    *signal_spec,
480
                 ...) G_GNUC_NULL_TERMINATED;
481
GOBJECT_AVAILABLE_IN_ALL
482
void      g_object_disconnect               (gpointer        object,
483
                 const gchar    *signal_spec,
484
                 ...) G_GNUC_NULL_TERMINATED;
485
GOBJECT_AVAILABLE_IN_2_54
486
void        g_object_setv                     (GObject        *object,
487
                                               guint           n_properties,
488
                                               const gchar    *names[],
489
                                               const GValue    values[]);
490
GOBJECT_AVAILABLE_IN_ALL
491
void        g_object_set_valist               (GObject        *object,
492
                 const gchar    *first_property_name,
493
                 va_list         var_args);
494
GOBJECT_AVAILABLE_IN_2_54
495
void        g_object_getv                     (GObject        *object,
496
                                               guint           n_properties,
497
                                               const gchar    *names[],
498
                                               GValue          values[]);
499
GOBJECT_AVAILABLE_IN_ALL
500
void        g_object_get_valist               (GObject        *object,
501
                 const gchar    *first_property_name,
502
                 va_list         var_args);
503
GOBJECT_AVAILABLE_IN_ALL
504
void        g_object_set_property             (GObject        *object,
505
                 const gchar    *property_name,
506
                 const GValue   *value);
507
GOBJECT_AVAILABLE_IN_ALL
508
void        g_object_get_property             (GObject        *object,
509
                 const gchar    *property_name,
510
                 GValue         *value);
511
GOBJECT_AVAILABLE_IN_ALL
512
void        g_object_freeze_notify            (GObject        *object);
513
GOBJECT_AVAILABLE_IN_ALL
514
void        g_object_notify                   (GObject        *object,
515
                 const gchar    *property_name);
516
GOBJECT_AVAILABLE_IN_ALL
517
void        g_object_notify_by_pspec          (GObject        *object,
518
                 GParamSpec     *pspec);
519
GOBJECT_AVAILABLE_IN_ALL
520
void        g_object_thaw_notify              (GObject        *object);
521
GOBJECT_AVAILABLE_IN_ALL
522
gboolean    g_object_is_floating            (gpointer        object);
523
GOBJECT_AVAILABLE_IN_ALL
524
gpointer    g_object_ref_sink               (gpointer        object);
525
GOBJECT_AVAILABLE_IN_2_70
526
gpointer    g_object_take_ref                 (gpointer        object);
527
GOBJECT_AVAILABLE_IN_ALL
528
gpointer    g_object_ref                      (gpointer        object);
529
GOBJECT_AVAILABLE_IN_ALL
530
void        g_object_unref                    (gpointer        object);
531
GOBJECT_AVAILABLE_IN_ALL
532
void      g_object_weak_ref         (GObject        *object,
533
                 GWeakNotify     notify,
534
                 gpointer        data);
535
GOBJECT_AVAILABLE_IN_ALL
536
void      g_object_weak_unref         (GObject        *object,
537
                 GWeakNotify     notify,
538
                 gpointer        data);
539
GOBJECT_AVAILABLE_IN_ALL
540
void        g_object_add_weak_pointer         (GObject        *object, 
541
                                               gpointer       *weak_pointer_location);
542
GOBJECT_AVAILABLE_IN_ALL
543
void        g_object_remove_weak_pointer      (GObject        *object, 
544
                                               gpointer       *weak_pointer_location);
545
546
#if defined(glib_typeof) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_56
547
/* Make reference APIs type safe with macros */
548
0
#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
549
#define g_object_ref_sink(Obj) ((glib_typeof (Obj)) (g_object_ref_sink) (Obj))
550
#endif
551
552
/**
553
 * GToggleNotify:
554
 * @data: Callback data passed to g_object_add_toggle_ref()
555
 * @object: The object on which g_object_add_toggle_ref() was called.
556
 * @is_last_ref: %TRUE if the toggle reference is now the
557
 *  last reference to the object. %FALSE if the toggle
558
 *  reference was the last reference and there are now other
559
 *  references.
560
 * 
561
 * A callback function used for notification when the state
562
 * of a toggle reference changes.
563
 *
564
 * See also: g_object_add_toggle_ref()
565
 */
566
typedef void (*GToggleNotify) (gpointer      data,
567
             GObject      *object,
568
             gboolean      is_last_ref);
569
570
GOBJECT_AVAILABLE_IN_ALL
571
void g_object_add_toggle_ref    (GObject       *object,
572
         GToggleNotify  notify,
573
         gpointer       data);
574
GOBJECT_AVAILABLE_IN_ALL
575
void g_object_remove_toggle_ref (GObject       *object,
576
         GToggleNotify  notify,
577
         gpointer       data);
578
579
GOBJECT_AVAILABLE_IN_ALL
580
gpointer    g_object_get_qdata                (GObject        *object,
581
                 GQuark          quark);
582
GOBJECT_AVAILABLE_IN_ALL
583
void        g_object_set_qdata                (GObject        *object,
584
                 GQuark          quark,
585
                 gpointer        data);
586
GOBJECT_AVAILABLE_IN_ALL
587
void        g_object_set_qdata_full           (GObject        *object,
588
                 GQuark          quark,
589
                 gpointer        data,
590
                 GDestroyNotify  destroy);
591
GOBJECT_AVAILABLE_IN_ALL
592
gpointer    g_object_steal_qdata              (GObject        *object,
593
                 GQuark          quark);
594
595
GOBJECT_AVAILABLE_IN_2_34
596
gpointer    g_object_dup_qdata                (GObject        *object,
597
                                               GQuark          quark,
598
                                               GDuplicateFunc  dup_func,
599
                 gpointer         user_data);
600
GOBJECT_AVAILABLE_IN_2_34
601
gboolean    g_object_replace_qdata            (GObject        *object,
602
                                               GQuark          quark,
603
                                               gpointer        oldval,
604
                                               gpointer        newval,
605
                                               GDestroyNotify  destroy,
606
                 GDestroyNotify *old_destroy);
607
608
GOBJECT_AVAILABLE_IN_ALL
609
gpointer    g_object_get_data                 (GObject        *object,
610
                 const gchar    *key);
611
GOBJECT_AVAILABLE_IN_ALL
612
void        g_object_set_data                 (GObject        *object,
613
                 const gchar    *key,
614
                 gpointer        data);
615
GOBJECT_AVAILABLE_IN_ALL
616
void        g_object_set_data_full            (GObject        *object,
617
                 const gchar    *key,
618
                 gpointer        data,
619
                 GDestroyNotify  destroy);
620
GOBJECT_AVAILABLE_IN_ALL
621
gpointer    g_object_steal_data               (GObject        *object,
622
                 const gchar    *key);
623
624
GOBJECT_AVAILABLE_IN_2_34
625
gpointer    g_object_dup_data                 (GObject        *object,
626
                                               const gchar    *key,
627
                                               GDuplicateFunc  dup_func,
628
                 gpointer         user_data);
629
GOBJECT_AVAILABLE_IN_2_34
630
gboolean    g_object_replace_data             (GObject        *object,
631
                                               const gchar    *key,
632
                                               gpointer        oldval,
633
                                               gpointer        newval,
634
                                               GDestroyNotify  destroy,
635
                 GDestroyNotify *old_destroy);
636
637
638
GOBJECT_AVAILABLE_IN_ALL
639
void        g_object_watch_closure            (GObject        *object,
640
                 GClosure       *closure);
641
GOBJECT_AVAILABLE_IN_ALL
642
GClosure*   g_cclosure_new_object             (GCallback       callback_func,
643
                 GObject        *object);
644
GOBJECT_AVAILABLE_IN_ALL
645
GClosure*   g_cclosure_new_object_swap        (GCallback       callback_func,
646
                 GObject        *object);
647
GOBJECT_AVAILABLE_IN_ALL
648
GClosure*   g_closure_new_object              (guint           sizeof_closure,
649
                 GObject        *object);
650
GOBJECT_AVAILABLE_IN_ALL
651
void        g_value_set_object                (GValue         *value,
652
                 gpointer        v_object);
653
GOBJECT_AVAILABLE_IN_ALL
654
gpointer    g_value_get_object                (const GValue   *value);
655
GOBJECT_AVAILABLE_IN_ALL
656
gpointer    g_value_dup_object                (const GValue   *value);
657
GOBJECT_AVAILABLE_IN_ALL
658
gulong      g_signal_connect_object           (gpointer        instance,
659
                 const gchar    *detailed_signal,
660
                 GCallback       c_handler,
661
                 gpointer        gobject,
662
                 GConnectFlags   connect_flags);
663
664
/*< protected >*/
665
GOBJECT_AVAILABLE_IN_ALL
666
void        g_object_force_floating           (GObject        *object);
667
GOBJECT_AVAILABLE_IN_ALL
668
void        g_object_run_dispose        (GObject        *object);
669
670
671
GOBJECT_AVAILABLE_IN_ALL
672
void        g_value_take_object               (GValue         *value,
673
                 gpointer        v_object);
674
GOBJECT_DEPRECATED_FOR(g_value_take_object)
675
void        g_value_set_object_take_ownership (GValue         *value,
676
                                               gpointer        v_object);
677
678
GOBJECT_DEPRECATED
679
gsize     g_object_compat_control       (gsize         what,
680
                 gpointer        data);
681
682
/* --- implementation macros --- */
683
0
#define G_OBJECT_WARN_INVALID_PSPEC(object, pname, property_id, pspec) \
684
0
G_STMT_START { \
685
0
  GObject *_glib__object = (GObject*) (object); \
686
0
  GParamSpec *_glib__pspec = (GParamSpec*) (pspec); \
687
0
  guint _glib__property_id = (property_id); \
688
0
  g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'", \
689
0
             __FILE__, __LINE__, \
690
0
             (pname), \
691
0
             _glib__property_id, \
692
0
             _glib__pspec->name, \
693
0
             g_type_name (G_PARAM_SPEC_TYPE (_glib__pspec)), \
694
0
             G_OBJECT_TYPE_NAME (_glib__object)); \
695
0
} G_STMT_END
696
/**
697
 * G_OBJECT_WARN_INVALID_PROPERTY_ID:
698
 * @object: the #GObject on which set_property() or get_property() was called
699
 * @property_id: the numeric id of the property
700
 * @pspec: the #GParamSpec of the property
701
 * 
702
 * This macro should be used to emit a standard warning about unexpected 
703
 * properties in set_property() and get_property() implementations.
704
 */
705
#define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec) \
706
0
    G_OBJECT_WARN_INVALID_PSPEC ((object), "property", (property_id), (pspec))
707
708
GOBJECT_AVAILABLE_IN_ALL
709
void    g_clear_object (GObject **object_ptr);
710
0
#define g_clear_object(object_ptr) g_clear_pointer ((object_ptr), g_object_unref)
711
712
/**
713
 * g_set_object: (skip)
714
 * @object_ptr: (inout) (not optional) (nullable): a pointer to a #GObject reference
715
 * @new_object: (nullable) (transfer none): a pointer to the new #GObject to
716
 *   assign to @object_ptr, or %NULL to clear the pointer
717
 *
718
 * Updates a #GObject pointer to refer to @new_object.
719
 *
720
 * It increments the reference count of @new_object (if non-%NULL), decrements
721
 * the reference count of the current value of @object_ptr (if non-%NULL), and
722
 * assigns @new_object to @object_ptr. The assignment is not atomic.
723
 *
724
 * @object_ptr must not be %NULL, but can point to a %NULL value.
725
 *
726
 * A macro is also included that allows this function to be used without
727
 * pointer casts. The function itself is static inline, so its address may vary
728
 * between compilation units.
729
 *
730
 * One convenient usage of this function is in implementing property setters:
731
 * |[
732
 *   void
733
 *   foo_set_bar (Foo *foo,
734
 *                Bar *new_bar)
735
 *   {
736
 *     g_return_if_fail (IS_FOO (foo));
737
 *     g_return_if_fail (new_bar == NULL || IS_BAR (new_bar));
738
 *
739
 *     if (g_set_object (&foo->bar, new_bar))
740
 *       g_object_notify (foo, "bar");
741
 *   }
742
 * ]|
743
 *
744
 * Returns: %TRUE if the value of @object_ptr changed, %FALSE otherwise
745
 *
746
 * Since: 2.44
747
 */
748
static inline gboolean
749
(g_set_object) (GObject **object_ptr,
750
                GObject  *new_object)
751
1.69k
{
752
1.69k
  GObject *old_object = *object_ptr;
753
754
  /* rely on g_object_[un]ref() to check the pointers are actually GObjects;
755
   * elide a (object_ptr != NULL) check because most of the time we will be
756
   * operating on struct members with a constant offset, so a NULL check would
757
   * not catch bugs
758
   */
759
760
1.69k
  if (old_object == new_object)
761
1.69k
    return FALSE;
762
763
0
  if (new_object != NULL)
764
0
    g_object_ref (new_object);
765
766
0
  *object_ptr = new_object;
767
768
0
  if (old_object != NULL)
769
0
    g_object_unref (old_object);
770
771
0
  return TRUE;
772
1.69k
}
Unexecuted instantiation: gasyncresult.c:g_set_object
Unexecuted instantiation: gcancellable.c:g_set_object
Unexecuted instantiation: gconverter.c:g_set_object
Unexecuted instantiation: gconverterinputstream.c:g_set_object
Unexecuted instantiation: gconverteroutputstream.c:g_set_object
Unexecuted instantiation: gdatainputstream.c:g_set_object
Unexecuted instantiation: gfile.c:g_set_object
Unexecuted instantiation: gfileattribute.c:g_set_object
Unexecuted instantiation: gfileenumerator.c:g_set_object
Unexecuted instantiation: gfileinfo.c:g_set_object
Unexecuted instantiation: gfileinputstream.c:g_set_object
Unexecuted instantiation: gfileoutputstream.c:g_set_object
Unexecuted instantiation: gfilterinputstream.c:g_set_object
Unexecuted instantiation: gfilteroutputstream.c:g_set_object
Unexecuted instantiation: gicon.c:g_set_object
Unexecuted instantiation: ginitable.c:g_set_object
Unexecuted instantiation: ginputstream.c:g_set_object
Unexecuted instantiation: gioerror.c:g_set_object
Unexecuted instantiation: gmemoryinputstream.c:g_set_object
Unexecuted instantiation: gmemoryoutputstream.c:g_set_object
Unexecuted instantiation: goutputstream.c:g_set_object
Unexecuted instantiation: gpollableinputstream.c:g_set_object
Unexecuted instantiation: gpollableoutputstream.c:g_set_object
Unexecuted instantiation: gpollableutils.c:g_set_object
Unexecuted instantiation: gpollfilemonitor.c:g_set_object
Unexecuted instantiation: gresource.c:g_set_object
Unexecuted instantiation: gseekable.c:g_set_object
Unexecuted instantiation: gsimpleasyncresult.c:g_set_object
Unexecuted instantiation: gtask.c:g_set_object
Unexecuted instantiation: gthemedicon.c:g_set_object
Unexecuted instantiation: gvfs.c:g_set_object
Unexecuted instantiation: gzlibcompressor.c:g_set_object
Unexecuted instantiation: gzlibdecompressor.c:g_set_object
Unexecuted instantiation: gdesktopappinfo.c:g_set_object
Unexecuted instantiation: gcontenttype.c:g_set_object
Unexecuted instantiation: gfiledescriptorbased.c:g_set_object
Unexecuted instantiation: gunixinputstream.c:g_set_object
Unexecuted instantiation: gunixoutputstream.c:g_set_object
Unexecuted instantiation: gdbusutils.c:g_set_object
Unexecuted instantiation: gdbuserror.c:g_set_object
Unexecuted instantiation: gdbusconnection.c:g_set_object
Unexecuted instantiation: gdbusmessage.c:g_set_object
Unexecuted instantiation: gdbusprivate.c:g_set_object
Unexecuted instantiation: gdbusintrospection.c:g_set_object
Unexecuted instantiation: gdbusmethodinvocation.c:g_set_object
Unexecuted instantiation: gdocumentportal.c:g_set_object
Unexecuted instantiation: glocalfile.c:g_set_object
Unexecuted instantiation: glocalfileenumerator.c:g_set_object
Unexecuted instantiation: glocalfileinfo.c:g_set_object
Unexecuted instantiation: glocalfileinputstream.c:g_set_object
Unexecuted instantiation: glocalfilemonitor.c:g_set_object
Unexecuted instantiation: glocalfileoutputstream.c:g_set_object
Unexecuted instantiation: glocalfileiostream.c:g_set_object
Unexecuted instantiation: glocalvfs.c:g_set_object
Unexecuted instantiation: thumbnail-verify.c:g_set_object
Unexecuted instantiation: gioenumtypes.c:g_set_object
Unexecuted instantiation: xdp-dbus.c:g_set_object
Unexecuted instantiation: gappinfo.c:g_set_object
Unexecuted instantiation: gasyncinitable.c:g_set_object
Unexecuted instantiation: gbufferedinputstream.c:g_set_object
Unexecuted instantiation: gbytesicon.c:g_set_object
Unexecuted instantiation: gcontextspecificgroup.c:g_set_object
Unexecuted instantiation: gdummyfile.c:g_set_object
Unexecuted instantiation: gemblem.c:g_set_object
Unexecuted instantiation: gemblemedicon.c:g_set_object
Unexecuted instantiation: gfileicon.c:g_set_object
Unexecuted instantiation: gfilemonitor.c:g_set_object
Unexecuted instantiation: gfileiostream.c:g_set_object
Unexecuted instantiation: giomodule.c:g_set_object
Unexecuted instantiation: giomodule-priv.c:g_set_object
Unexecuted instantiation: gioscheduler.c:g_set_object
Unexecuted instantiation: giostream.c:g_set_object
Unexecuted instantiation: gloadableicon.c:g_set_object
Unexecuted instantiation: gmarshal-internal.c:g_set_object
Unexecuted instantiation: gmemorymonitor.c:g_set_object
Unexecuted instantiation: gmemorymonitordbus.c:g_set_object
Unexecuted instantiation: gnativevolumemonitor.c:g_set_object
Unexecuted instantiation: gnetworkmonitor.c:g_set_object
Unexecuted instantiation: gnetworkmonitorbase.c:g_set_object
Unexecuted instantiation: gpowerprofilemonitor.c:g_set_object
Unexecuted instantiation: gpowerprofilemonitordbus.c:g_set_object
Unexecuted instantiation: gproxy.c:g_set_object
Unexecuted instantiation: gproxyresolver.c:g_set_object
Unexecuted instantiation: gresourcefile.c:g_set_object
Unexecuted instantiation: gsocket.c:g_set_object
Unexecuted instantiation: gsocketaddress.c:g_set_object
Unexecuted instantiation: gsocketaddressenumerator.c:g_set_object
Unexecuted instantiation: gsocketconnectable.c:g_set_object
Unexecuted instantiation: gsocketconnection.c:g_set_object
Unexecuted instantiation: gsocketcontrolmessage.c:g_set_object
Unexecuted instantiation: gsocketinputstream.c:g_set_object
Unexecuted instantiation: gsocketoutputstream.c:g_set_object
Unexecuted instantiation: gtcpconnection.c:g_set_object
Unexecuted instantiation: gtlsbackend.c:g_set_object
Unexecuted instantiation: gtlsdatabase.c:g_set_object
Unexecuted instantiation: gtlsinteraction.c:g_set_object
Unexecuted instantiation: gtlspassword.c:g_set_object
Unexecuted instantiation: gunionvolumemonitor.c:g_set_object
Unexecuted instantiation: gunixconnection.c:g_set_object
Unexecuted instantiation: gunixfdlist.c:g_set_object
Unexecuted instantiation: gunixcredentialsmessage.c:g_set_object
Unexecuted instantiation: gunixsocketaddress.c:g_set_object
Unexecuted instantiation: gvolumemonitor.c:g_set_object
Unexecuted instantiation: giounix-private.c:g_set_object
Unexecuted instantiation: gunixfdmessage.c:g_set_object
Unexecuted instantiation: gunixmounts.c:g_set_object
Unexecuted instantiation: gunixvolumemonitor.c:g_set_object
Unexecuted instantiation: gfdonotificationbackend.c:g_set_object
Unexecuted instantiation: ggtknotificationbackend.c:g_set_object
Unexecuted instantiation: gnetworkmonitornetlink.c:g_set_object
Unexecuted instantiation: gnetworkmonitornm.c:g_set_object
Unexecuted instantiation: gapplication.c:g_set_object
Unexecuted instantiation: gapplicationcommandline.c:g_set_object
Unexecuted instantiation: gapplicationimpl-dbus.c:g_set_object
Unexecuted instantiation: gactiongroup.c:g_set_object
Unexecuted instantiation: gactionmap.c:g_set_object
Unexecuted instantiation: gsimpleactiongroup.c:g_set_object
Unexecuted instantiation: gremoteactiongroup.c:g_set_object
Unexecuted instantiation: gactiongroupexporter.c:g_set_object
Unexecuted instantiation: gdbusactiongroup.c:g_set_object
Unexecuted instantiation: gaction.c:g_set_object
Unexecuted instantiation: gsimpleaction.c:g_set_object
Unexecuted instantiation: gnotification.c:g_set_object
Unexecuted instantiation: gnotificationbackend.c:g_set_object
Unexecuted instantiation: gkeyfilesettingsbackend.c:g_set_object
Unexecuted instantiation: gmemorysettingsbackend.c:g_set_object
Unexecuted instantiation: gnullsettingsbackend.c:g_set_object
Unexecuted instantiation: gsettingsbackend.c:g_set_object
Unexecuted instantiation: gsettings.c:g_set_object
Unexecuted instantiation: gdbusaddress.c:g_set_object
Unexecuted instantiation: gdbusauthobserver.c:g_set_object
Unexecuted instantiation: gdbusauth.c:g_set_object
Unexecuted instantiation: gdbusauthmechanism.c:g_set_object
Unexecuted instantiation: gdbusauthmechanismanon.c:g_set_object
Unexecuted instantiation: gdbusauthmechanismexternal.c:g_set_object
Unexecuted instantiation: gdbusauthmechanismsha1.c:g_set_object
Unexecuted instantiation: gdbusnamewatching.c:g_set_object
Unexecuted instantiation: gdbusproxy.c:g_set_object
Unexecuted instantiation: gdbusinterface.c:g_set_object
Unexecuted instantiation: gdbusinterfaceskeleton.c:g_set_object
Unexecuted instantiation: gdbusobject.c:g_set_object
Unexecuted instantiation: gdbusobjectskeleton.c:g_set_object
Unexecuted instantiation: gopenuriportal.c:g_set_object
Unexecuted instantiation: gmemorymonitorportal.c:g_set_object
Unexecuted instantiation: gnetworkmonitorportal.c:g_set_object
Unexecuted instantiation: gpowerprofilemonitorportal.c:g_set_object
Unexecuted instantiation: gproxyresolverportal.c:g_set_object
Unexecuted instantiation: gtrashportal.c:g_set_object
Unexecuted instantiation: gportalsupport.c:g_set_object
Unexecuted instantiation: gportalnotificationbackend.c:g_set_object
Unexecuted instantiation: gsandbox.c:g_set_object
Unexecuted instantiation: ghttpproxy.c:g_set_object
Unexecuted instantiation: gsocks4proxy.c:g_set_object
Unexecuted instantiation: gsocks4aproxy.c:g_set_object
Unexecuted instantiation: gsocks5proxy.c:g_set_object
Unexecuted instantiation: ginotifyfilemonitor.c:g_set_object
Unexecuted instantiation: gcredentials.c:g_set_object
Unexecuted instantiation: gdatagrambased.c:g_set_object
Unexecuted instantiation: gdataoutputstream.c:g_set_object
Unexecuted instantiation: gdebugcontroller.c:g_set_object
Unexecuted instantiation: gdebugcontrollerdbus.c:g_set_object
Unexecuted instantiation: gdrive.c:g_set_object
Unexecuted instantiation: gdummyproxyresolver.c:g_set_object
Unexecuted instantiation: gdummytlsbackend.c:g_set_object
Unexecuted instantiation: ginetaddress.c:g_set_object
Unexecuted instantiation: ginetaddressmask.c:g_set_object
Unexecuted instantiation: ginetsocketaddress.c:g_set_object
Unexecuted instantiation: gmount.c:g_set_object
Unexecuted instantiation: gnativesocketaddress.c:g_set_object
Unexecuted instantiation: gnetworkaddress.c:g_set_object
Unexecuted instantiation: gnetworking.c:g_set_object
Unexecuted instantiation: gproxyaddress.c:g_set_object
Unexecuted instantiation: gproxyaddressenumerator.c:g_set_object
Unexecuted instantiation: gresolver.c:g_set_object
Unexecuted instantiation: gsimplepermission.c:g_set_object
Unexecuted instantiation: gsocketclient.c:g_set_object
Unexecuted instantiation: gsrvtarget.c:g_set_object
Unexecuted instantiation: gtcpwrapperconnection.c:g_set_object
Unexecuted instantiation: gthreadedresolver.c:g_set_object
Unexecuted instantiation: gtlscertificate.c:g_set_object
Unexecuted instantiation: gtlsclientconnection.c:g_set_object
Unexecuted instantiation: gtlsconnection.c:g_set_object
Unexecuted instantiation: gtlsfiledatabase.c:g_set_object
Unexecuted instantiation: gtlsserverconnection.c:g_set_object
Unexecuted instantiation: gdtlsconnection.c:g_set_object
Unexecuted instantiation: gdtlsclientconnection.c:g_set_object
Unexecuted instantiation: gdtlsserverconnection.c:g_set_object
Unexecuted instantiation: gvolume.c:g_set_object
Unexecuted instantiation: gunixmount.c:g_set_object
Unexecuted instantiation: gunixvolume.c:g_set_object
Unexecuted instantiation: gdelayedsettingsbackend.c:g_set_object
Unexecuted instantiation: gsettingsschema.c:g_set_object
Unexecuted instantiation: gsettings-mapping.c:g_set_object
Unexecuted instantiation: inotify-helper.c:g_set_object
Unexecuted instantiation: gnetworkservice.c:g_set_object
Unexecuted instantiation: gpermission.c:g_set_object
Unexecuted instantiation: gsubprocess.c:g_set_object
Unexecuted instantiation: gboxed.c:g_set_object
Unexecuted instantiation: gclosure.c:g_set_object
Unexecuted instantiation: genums.c:g_set_object
Unexecuted instantiation: gmarshal.c:g_set_object
gobject.c:g_set_object
Line
Count
Source
751
1.69k
{
752
1.69k
  GObject *old_object = *object_ptr;
753
754
  /* rely on g_object_[un]ref() to check the pointers are actually GObjects;
755
   * elide a (object_ptr != NULL) check because most of the time we will be
756
   * operating on struct members with a constant offset, so a NULL check would
757
   * not catch bugs
758
   */
759
760
1.69k
  if (old_object == new_object)
761
1.69k
    return FALSE;
762
763
0
  if (new_object != NULL)
764
0
    g_object_ref (new_object);
765
766
0
  *object_ptr = new_object;
767
768
0
  if (old_object != NULL)
769
0
    g_object_unref (old_object);
770
771
0
  return TRUE;
772
1.69k
}
Unexecuted instantiation: gparam.c:g_set_object
Unexecuted instantiation: gparamspecs.c:g_set_object
Unexecuted instantiation: gsignal.c:g_set_object
Unexecuted instantiation: gtype.c:g_set_object
Unexecuted instantiation: gtypemodule.c:g_set_object
Unexecuted instantiation: gvalue.c:g_set_object
Unexecuted instantiation: gvaluetransform.c:g_set_object
Unexecuted instantiation: gvaluetypes.c:g_set_object
773
774
/* We need GCC for __extension__, which we need to sort out strict aliasing of @object_ptr */
775
#if defined(__GNUC__)
776
777
#define g_set_object(object_ptr, new_object) \
778
1.69k
  (G_GNUC_EXTENSION ({ \
779
1.69k
    G_STATIC_ASSERT (sizeof *(object_ptr) == sizeof (new_object)); \
780
1.69k
    /* Only one access, please; work around type aliasing */ \
781
1.69k
    union { char *in; GObject **out; } _object_ptr; \
782
1.69k
    _object_ptr.in = (char *) (object_ptr); \
783
1.69k
    /* Check types match */ \
784
1.69k
    (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
785
1.69k
    (g_set_object) (_object_ptr.out, (GObject *) new_object); \
786
1.69k
  })) \
787
1.69k
  GOBJECT_AVAILABLE_MACRO_IN_2_44
788
789
#else  /* if !defined(__GNUC__) */
790
791
#define g_set_object(object_ptr, new_object) \
792
 (/* Check types match. */ \
793
  0 ? *(object_ptr) = (new_object), FALSE : \
794
  (g_set_object) ((GObject **) (object_ptr), (GObject *) (new_object)) \
795
 )
796
797
#endif  /* !defined(__GNUC__) */
798
799
/**
800
 * g_assert_finalize_object: (skip)
801
 * @object: (transfer full) (type GObject.Object): an object
802
 *
803
 * Assert that @object is non-%NULL, then release one reference to it with
804
 * g_object_unref() and assert that it has been finalized (i.e. that there
805
 * are no more references).
806
 *
807
 * If assertions are disabled via `G_DISABLE_ASSERT`,
808
 * this macro just calls g_object_unref() without any further checks.
809
 *
810
 * This macro should only be used in regression tests.
811
 *
812
 * Since: 2.62
813
 */
814
static inline void
815
(g_assert_finalize_object) (GObject *object)
816
0
{
817
0
  gpointer weak_pointer = object;
818
0
819
0
  g_assert_true (G_IS_OBJECT (weak_pointer));
820
0
  g_object_add_weak_pointer (object, &weak_pointer);
821
0
  g_object_unref (weak_pointer);
822
0
  g_assert_null (weak_pointer);
823
0
}
Unexecuted instantiation: gasyncresult.c:g_assert_finalize_object
Unexecuted instantiation: gcancellable.c:g_assert_finalize_object
Unexecuted instantiation: gconverter.c:g_assert_finalize_object
Unexecuted instantiation: gconverterinputstream.c:g_assert_finalize_object
Unexecuted instantiation: gconverteroutputstream.c:g_assert_finalize_object
Unexecuted instantiation: gdatainputstream.c:g_assert_finalize_object
Unexecuted instantiation: gfile.c:g_assert_finalize_object
Unexecuted instantiation: gfileattribute.c:g_assert_finalize_object
Unexecuted instantiation: gfileenumerator.c:g_assert_finalize_object
Unexecuted instantiation: gfileinfo.c:g_assert_finalize_object
Unexecuted instantiation: gfileinputstream.c:g_assert_finalize_object
Unexecuted instantiation: gfileoutputstream.c:g_assert_finalize_object
Unexecuted instantiation: gfilterinputstream.c:g_assert_finalize_object
Unexecuted instantiation: gfilteroutputstream.c:g_assert_finalize_object
Unexecuted instantiation: gicon.c:g_assert_finalize_object
Unexecuted instantiation: ginitable.c:g_assert_finalize_object
Unexecuted instantiation: ginputstream.c:g_assert_finalize_object
Unexecuted instantiation: gioerror.c:g_assert_finalize_object
Unexecuted instantiation: gmemoryinputstream.c:g_assert_finalize_object
Unexecuted instantiation: gmemoryoutputstream.c:g_assert_finalize_object
Unexecuted instantiation: goutputstream.c:g_assert_finalize_object
Unexecuted instantiation: gpollableinputstream.c:g_assert_finalize_object
Unexecuted instantiation: gpollableoutputstream.c:g_assert_finalize_object
Unexecuted instantiation: gpollableutils.c:g_assert_finalize_object
Unexecuted instantiation: gpollfilemonitor.c:g_assert_finalize_object
Unexecuted instantiation: gresource.c:g_assert_finalize_object
Unexecuted instantiation: gseekable.c:g_assert_finalize_object
Unexecuted instantiation: gsimpleasyncresult.c:g_assert_finalize_object
Unexecuted instantiation: gtask.c:g_assert_finalize_object
Unexecuted instantiation: gthemedicon.c:g_assert_finalize_object
Unexecuted instantiation: gvfs.c:g_assert_finalize_object
Unexecuted instantiation: gzlibcompressor.c:g_assert_finalize_object
Unexecuted instantiation: gzlibdecompressor.c:g_assert_finalize_object
Unexecuted instantiation: gdesktopappinfo.c:g_assert_finalize_object
Unexecuted instantiation: gcontenttype.c:g_assert_finalize_object
Unexecuted instantiation: gfiledescriptorbased.c:g_assert_finalize_object
Unexecuted instantiation: gunixinputstream.c:g_assert_finalize_object
Unexecuted instantiation: gunixoutputstream.c:g_assert_finalize_object
Unexecuted instantiation: gdbusutils.c:g_assert_finalize_object
Unexecuted instantiation: gdbuserror.c:g_assert_finalize_object
Unexecuted instantiation: gdbusconnection.c:g_assert_finalize_object
Unexecuted instantiation: gdbusmessage.c:g_assert_finalize_object
Unexecuted instantiation: gdbusprivate.c:g_assert_finalize_object
Unexecuted instantiation: gdbusintrospection.c:g_assert_finalize_object
Unexecuted instantiation: gdbusmethodinvocation.c:g_assert_finalize_object
Unexecuted instantiation: gdocumentportal.c:g_assert_finalize_object
Unexecuted instantiation: glocalfile.c:g_assert_finalize_object
Unexecuted instantiation: glocalfileenumerator.c:g_assert_finalize_object
Unexecuted instantiation: glocalfileinfo.c:g_assert_finalize_object
Unexecuted instantiation: glocalfileinputstream.c:g_assert_finalize_object
Unexecuted instantiation: glocalfilemonitor.c:g_assert_finalize_object
Unexecuted instantiation: glocalfileoutputstream.c:g_assert_finalize_object
Unexecuted instantiation: glocalfileiostream.c:g_assert_finalize_object
Unexecuted instantiation: glocalvfs.c:g_assert_finalize_object
Unexecuted instantiation: thumbnail-verify.c:g_assert_finalize_object
Unexecuted instantiation: gioenumtypes.c:g_assert_finalize_object
Unexecuted instantiation: xdp-dbus.c:g_assert_finalize_object
Unexecuted instantiation: gappinfo.c:g_assert_finalize_object
Unexecuted instantiation: gasyncinitable.c:g_assert_finalize_object
Unexecuted instantiation: gbufferedinputstream.c:g_assert_finalize_object
Unexecuted instantiation: gbytesicon.c:g_assert_finalize_object
Unexecuted instantiation: gcontextspecificgroup.c:g_assert_finalize_object
Unexecuted instantiation: gdummyfile.c:g_assert_finalize_object
Unexecuted instantiation: gemblem.c:g_assert_finalize_object
Unexecuted instantiation: gemblemedicon.c:g_assert_finalize_object
Unexecuted instantiation: gfileicon.c:g_assert_finalize_object
Unexecuted instantiation: gfilemonitor.c:g_assert_finalize_object
Unexecuted instantiation: gfileiostream.c:g_assert_finalize_object
Unexecuted instantiation: giomodule.c:g_assert_finalize_object
Unexecuted instantiation: giomodule-priv.c:g_assert_finalize_object
Unexecuted instantiation: gioscheduler.c:g_assert_finalize_object
Unexecuted instantiation: giostream.c:g_assert_finalize_object
Unexecuted instantiation: gloadableicon.c:g_assert_finalize_object
Unexecuted instantiation: gmarshal-internal.c:g_assert_finalize_object
Unexecuted instantiation: gmemorymonitor.c:g_assert_finalize_object
Unexecuted instantiation: gmemorymonitordbus.c:g_assert_finalize_object
Unexecuted instantiation: gnativevolumemonitor.c:g_assert_finalize_object
Unexecuted instantiation: gnetworkmonitor.c:g_assert_finalize_object
Unexecuted instantiation: gnetworkmonitorbase.c:g_assert_finalize_object
Unexecuted instantiation: gpowerprofilemonitor.c:g_assert_finalize_object
Unexecuted instantiation: gpowerprofilemonitordbus.c:g_assert_finalize_object
Unexecuted instantiation: gproxy.c:g_assert_finalize_object
Unexecuted instantiation: gproxyresolver.c:g_assert_finalize_object
Unexecuted instantiation: gresourcefile.c:g_assert_finalize_object
Unexecuted instantiation: gsocket.c:g_assert_finalize_object
Unexecuted instantiation: gsocketaddress.c:g_assert_finalize_object
Unexecuted instantiation: gsocketaddressenumerator.c:g_assert_finalize_object
Unexecuted instantiation: gsocketconnectable.c:g_assert_finalize_object
Unexecuted instantiation: gsocketconnection.c:g_assert_finalize_object
Unexecuted instantiation: gsocketcontrolmessage.c:g_assert_finalize_object
Unexecuted instantiation: gsocketinputstream.c:g_assert_finalize_object
Unexecuted instantiation: gsocketoutputstream.c:g_assert_finalize_object
Unexecuted instantiation: gtcpconnection.c:g_assert_finalize_object
Unexecuted instantiation: gtlsbackend.c:g_assert_finalize_object
Unexecuted instantiation: gtlsdatabase.c:g_assert_finalize_object
Unexecuted instantiation: gtlsinteraction.c:g_assert_finalize_object
Unexecuted instantiation: gtlspassword.c:g_assert_finalize_object
Unexecuted instantiation: gunionvolumemonitor.c:g_assert_finalize_object
Unexecuted instantiation: gunixconnection.c:g_assert_finalize_object
Unexecuted instantiation: gunixfdlist.c:g_assert_finalize_object
Unexecuted instantiation: gunixcredentialsmessage.c:g_assert_finalize_object
Unexecuted instantiation: gunixsocketaddress.c:g_assert_finalize_object
Unexecuted instantiation: gvolumemonitor.c:g_assert_finalize_object
Unexecuted instantiation: giounix-private.c:g_assert_finalize_object
Unexecuted instantiation: gunixfdmessage.c:g_assert_finalize_object
Unexecuted instantiation: gunixmounts.c:g_assert_finalize_object
Unexecuted instantiation: gunixvolumemonitor.c:g_assert_finalize_object
Unexecuted instantiation: gfdonotificationbackend.c:g_assert_finalize_object
Unexecuted instantiation: ggtknotificationbackend.c:g_assert_finalize_object
Unexecuted instantiation: gnetworkmonitornetlink.c:g_assert_finalize_object
Unexecuted instantiation: gnetworkmonitornm.c:g_assert_finalize_object
Unexecuted instantiation: gapplication.c:g_assert_finalize_object
Unexecuted instantiation: gapplicationcommandline.c:g_assert_finalize_object
Unexecuted instantiation: gapplicationimpl-dbus.c:g_assert_finalize_object
Unexecuted instantiation: gactiongroup.c:g_assert_finalize_object
Unexecuted instantiation: gactionmap.c:g_assert_finalize_object
Unexecuted instantiation: gsimpleactiongroup.c:g_assert_finalize_object
Unexecuted instantiation: gremoteactiongroup.c:g_assert_finalize_object
Unexecuted instantiation: gactiongroupexporter.c:g_assert_finalize_object
Unexecuted instantiation: gdbusactiongroup.c:g_assert_finalize_object
Unexecuted instantiation: gaction.c:g_assert_finalize_object
Unexecuted instantiation: gsimpleaction.c:g_assert_finalize_object
Unexecuted instantiation: gnotification.c:g_assert_finalize_object
Unexecuted instantiation: gnotificationbackend.c:g_assert_finalize_object
Unexecuted instantiation: gkeyfilesettingsbackend.c:g_assert_finalize_object
Unexecuted instantiation: gmemorysettingsbackend.c:g_assert_finalize_object
Unexecuted instantiation: gnullsettingsbackend.c:g_assert_finalize_object
Unexecuted instantiation: gsettingsbackend.c:g_assert_finalize_object
Unexecuted instantiation: gsettings.c:g_assert_finalize_object
Unexecuted instantiation: gdbusaddress.c:g_assert_finalize_object
Unexecuted instantiation: gdbusauthobserver.c:g_assert_finalize_object
Unexecuted instantiation: gdbusauth.c:g_assert_finalize_object
Unexecuted instantiation: gdbusauthmechanism.c:g_assert_finalize_object
Unexecuted instantiation: gdbusauthmechanismanon.c:g_assert_finalize_object
Unexecuted instantiation: gdbusauthmechanismexternal.c:g_assert_finalize_object
Unexecuted instantiation: gdbusauthmechanismsha1.c:g_assert_finalize_object
Unexecuted instantiation: gdbusnamewatching.c:g_assert_finalize_object
Unexecuted instantiation: gdbusproxy.c:g_assert_finalize_object
Unexecuted instantiation: gdbusinterface.c:g_assert_finalize_object
Unexecuted instantiation: gdbusinterfaceskeleton.c:g_assert_finalize_object
Unexecuted instantiation: gdbusobject.c:g_assert_finalize_object
Unexecuted instantiation: gdbusobjectskeleton.c:g_assert_finalize_object
Unexecuted instantiation: gopenuriportal.c:g_assert_finalize_object
Unexecuted instantiation: gmemorymonitorportal.c:g_assert_finalize_object
Unexecuted instantiation: gnetworkmonitorportal.c:g_assert_finalize_object
Unexecuted instantiation: gpowerprofilemonitorportal.c:g_assert_finalize_object
Unexecuted instantiation: gproxyresolverportal.c:g_assert_finalize_object
Unexecuted instantiation: gtrashportal.c:g_assert_finalize_object
Unexecuted instantiation: gportalsupport.c:g_assert_finalize_object
Unexecuted instantiation: gportalnotificationbackend.c:g_assert_finalize_object
Unexecuted instantiation: gsandbox.c:g_assert_finalize_object
Unexecuted instantiation: ghttpproxy.c:g_assert_finalize_object
Unexecuted instantiation: gsocks4proxy.c:g_assert_finalize_object
Unexecuted instantiation: gsocks4aproxy.c:g_assert_finalize_object
Unexecuted instantiation: gsocks5proxy.c:g_assert_finalize_object
Unexecuted instantiation: ginotifyfilemonitor.c:g_assert_finalize_object
Unexecuted instantiation: gcredentials.c:g_assert_finalize_object
Unexecuted instantiation: gdatagrambased.c:g_assert_finalize_object
Unexecuted instantiation: gdataoutputstream.c:g_assert_finalize_object
Unexecuted instantiation: gdebugcontroller.c:g_assert_finalize_object
Unexecuted instantiation: gdebugcontrollerdbus.c:g_assert_finalize_object
Unexecuted instantiation: gdrive.c:g_assert_finalize_object
Unexecuted instantiation: gdummyproxyresolver.c:g_assert_finalize_object
Unexecuted instantiation: gdummytlsbackend.c:g_assert_finalize_object
Unexecuted instantiation: ginetaddress.c:g_assert_finalize_object
Unexecuted instantiation: ginetaddressmask.c:g_assert_finalize_object
Unexecuted instantiation: ginetsocketaddress.c:g_assert_finalize_object
Unexecuted instantiation: gmount.c:g_assert_finalize_object
Unexecuted instantiation: gnativesocketaddress.c:g_assert_finalize_object
Unexecuted instantiation: gnetworkaddress.c:g_assert_finalize_object
Unexecuted instantiation: gnetworking.c:g_assert_finalize_object
Unexecuted instantiation: gproxyaddress.c:g_assert_finalize_object
Unexecuted instantiation: gproxyaddressenumerator.c:g_assert_finalize_object
Unexecuted instantiation: gresolver.c:g_assert_finalize_object
Unexecuted instantiation: gsimplepermission.c:g_assert_finalize_object
Unexecuted instantiation: gsocketclient.c:g_assert_finalize_object
Unexecuted instantiation: gsrvtarget.c:g_assert_finalize_object
Unexecuted instantiation: gtcpwrapperconnection.c:g_assert_finalize_object
Unexecuted instantiation: gthreadedresolver.c:g_assert_finalize_object
Unexecuted instantiation: gtlscertificate.c:g_assert_finalize_object
Unexecuted instantiation: gtlsclientconnection.c:g_assert_finalize_object
Unexecuted instantiation: gtlsconnection.c:g_assert_finalize_object
Unexecuted instantiation: gtlsfiledatabase.c:g_assert_finalize_object
Unexecuted instantiation: gtlsserverconnection.c:g_assert_finalize_object
Unexecuted instantiation: gdtlsconnection.c:g_assert_finalize_object
Unexecuted instantiation: gdtlsclientconnection.c:g_assert_finalize_object
Unexecuted instantiation: gdtlsserverconnection.c:g_assert_finalize_object
Unexecuted instantiation: gvolume.c:g_assert_finalize_object
Unexecuted instantiation: gunixmount.c:g_assert_finalize_object
Unexecuted instantiation: gunixvolume.c:g_assert_finalize_object
Unexecuted instantiation: gdelayedsettingsbackend.c:g_assert_finalize_object
Unexecuted instantiation: gsettingsschema.c:g_assert_finalize_object
Unexecuted instantiation: gsettings-mapping.c:g_assert_finalize_object
Unexecuted instantiation: inotify-helper.c:g_assert_finalize_object
Unexecuted instantiation: gnetworkservice.c:g_assert_finalize_object
Unexecuted instantiation: gpermission.c:g_assert_finalize_object
Unexecuted instantiation: gsubprocess.c:g_assert_finalize_object
Unexecuted instantiation: gboxed.c:g_assert_finalize_object
Unexecuted instantiation: gclosure.c:g_assert_finalize_object
Unexecuted instantiation: genums.c:g_assert_finalize_object
Unexecuted instantiation: gmarshal.c:g_assert_finalize_object
Unexecuted instantiation: gobject.c:g_assert_finalize_object
Unexecuted instantiation: gparam.c:g_assert_finalize_object
Unexecuted instantiation: gparamspecs.c:g_assert_finalize_object
Unexecuted instantiation: gsignal.c:g_assert_finalize_object
Unexecuted instantiation: gtype.c:g_assert_finalize_object
Unexecuted instantiation: gtypemodule.c:g_assert_finalize_object
Unexecuted instantiation: gvalue.c:g_assert_finalize_object
Unexecuted instantiation: gvaluetransform.c:g_assert_finalize_object
Unexecuted instantiation: gvaluetypes.c:g_assert_finalize_object
824
825
#ifdef G_DISABLE_ASSERT
826
#define g_assert_finalize_object(object) g_object_unref (object)
827
#else
828
#define g_assert_finalize_object(object) (g_assert_finalize_object ((GObject *) object))
829
#endif
830
831
/**
832
 * g_clear_weak_pointer: (skip)
833
 * @weak_pointer_location: The memory address of a pointer
834
 *
835
 * Clears a weak reference to a #GObject.
836
 *
837
 * @weak_pointer_location must not be %NULL.
838
 *
839
 * If the weak reference is %NULL then this function does nothing.
840
 * Otherwise, the weak reference to the object is removed for that location
841
 * and the pointer is set to %NULL.
842
 *
843
 * A macro is also included that allows this function to be used without
844
 * pointer casts. The function itself is static inline, so its address may vary
845
 * between compilation units.
846
 *
847
 * Since: 2.56
848
 */
849
static inline void
850
(g_clear_weak_pointer) (gpointer *weak_pointer_location)
851
0
{
852
0
  GObject *object = (GObject *) *weak_pointer_location;
853
0
854
0
  if (object != NULL)
855
0
    {
856
0
      g_object_remove_weak_pointer (object, weak_pointer_location);
857
0
      *weak_pointer_location = NULL;
858
0
    }
859
0
}
Unexecuted instantiation: gasyncresult.c:g_clear_weak_pointer
Unexecuted instantiation: gcancellable.c:g_clear_weak_pointer
Unexecuted instantiation: gconverter.c:g_clear_weak_pointer
Unexecuted instantiation: gconverterinputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gconverteroutputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gdatainputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gfile.c:g_clear_weak_pointer
Unexecuted instantiation: gfileattribute.c:g_clear_weak_pointer
Unexecuted instantiation: gfileenumerator.c:g_clear_weak_pointer
Unexecuted instantiation: gfileinfo.c:g_clear_weak_pointer
Unexecuted instantiation: gfileinputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gfileoutputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gfilterinputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gfilteroutputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gicon.c:g_clear_weak_pointer
Unexecuted instantiation: ginitable.c:g_clear_weak_pointer
Unexecuted instantiation: ginputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gioerror.c:g_clear_weak_pointer
Unexecuted instantiation: gmemoryinputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gmemoryoutputstream.c:g_clear_weak_pointer
Unexecuted instantiation: goutputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gpollableinputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gpollableoutputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gpollableutils.c:g_clear_weak_pointer
Unexecuted instantiation: gpollfilemonitor.c:g_clear_weak_pointer
Unexecuted instantiation: gresource.c:g_clear_weak_pointer
Unexecuted instantiation: gseekable.c:g_clear_weak_pointer
Unexecuted instantiation: gsimpleasyncresult.c:g_clear_weak_pointer
Unexecuted instantiation: gtask.c:g_clear_weak_pointer
Unexecuted instantiation: gthemedicon.c:g_clear_weak_pointer
Unexecuted instantiation: gvfs.c:g_clear_weak_pointer
Unexecuted instantiation: gzlibcompressor.c:g_clear_weak_pointer
Unexecuted instantiation: gzlibdecompressor.c:g_clear_weak_pointer
Unexecuted instantiation: gdesktopappinfo.c:g_clear_weak_pointer
Unexecuted instantiation: gcontenttype.c:g_clear_weak_pointer
Unexecuted instantiation: gfiledescriptorbased.c:g_clear_weak_pointer
Unexecuted instantiation: gunixinputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gunixoutputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusutils.c:g_clear_weak_pointer
Unexecuted instantiation: gdbuserror.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusmessage.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusprivate.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusintrospection.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusmethodinvocation.c:g_clear_weak_pointer
Unexecuted instantiation: gdocumentportal.c:g_clear_weak_pointer
Unexecuted instantiation: glocalfile.c:g_clear_weak_pointer
Unexecuted instantiation: glocalfileenumerator.c:g_clear_weak_pointer
Unexecuted instantiation: glocalfileinfo.c:g_clear_weak_pointer
Unexecuted instantiation: glocalfileinputstream.c:g_clear_weak_pointer
Unexecuted instantiation: glocalfilemonitor.c:g_clear_weak_pointer
Unexecuted instantiation: glocalfileoutputstream.c:g_clear_weak_pointer
Unexecuted instantiation: glocalfileiostream.c:g_clear_weak_pointer
Unexecuted instantiation: glocalvfs.c:g_clear_weak_pointer
Unexecuted instantiation: thumbnail-verify.c:g_clear_weak_pointer
Unexecuted instantiation: gioenumtypes.c:g_clear_weak_pointer
Unexecuted instantiation: xdp-dbus.c:g_clear_weak_pointer
Unexecuted instantiation: gappinfo.c:g_clear_weak_pointer
Unexecuted instantiation: gasyncinitable.c:g_clear_weak_pointer
Unexecuted instantiation: gbufferedinputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gbytesicon.c:g_clear_weak_pointer
Unexecuted instantiation: gcontextspecificgroup.c:g_clear_weak_pointer
Unexecuted instantiation: gdummyfile.c:g_clear_weak_pointer
Unexecuted instantiation: gemblem.c:g_clear_weak_pointer
Unexecuted instantiation: gemblemedicon.c:g_clear_weak_pointer
Unexecuted instantiation: gfileicon.c:g_clear_weak_pointer
Unexecuted instantiation: gfilemonitor.c:g_clear_weak_pointer
Unexecuted instantiation: gfileiostream.c:g_clear_weak_pointer
Unexecuted instantiation: giomodule.c:g_clear_weak_pointer
Unexecuted instantiation: giomodule-priv.c:g_clear_weak_pointer
Unexecuted instantiation: gioscheduler.c:g_clear_weak_pointer
Unexecuted instantiation: giostream.c:g_clear_weak_pointer
Unexecuted instantiation: gloadableicon.c:g_clear_weak_pointer
Unexecuted instantiation: gmarshal-internal.c:g_clear_weak_pointer
Unexecuted instantiation: gmemorymonitor.c:g_clear_weak_pointer
Unexecuted instantiation: gmemorymonitordbus.c:g_clear_weak_pointer
Unexecuted instantiation: gnativevolumemonitor.c:g_clear_weak_pointer
Unexecuted instantiation: gnetworkmonitor.c:g_clear_weak_pointer
Unexecuted instantiation: gnetworkmonitorbase.c:g_clear_weak_pointer
Unexecuted instantiation: gpowerprofilemonitor.c:g_clear_weak_pointer
Unexecuted instantiation: gpowerprofilemonitordbus.c:g_clear_weak_pointer
Unexecuted instantiation: gproxy.c:g_clear_weak_pointer
Unexecuted instantiation: gproxyresolver.c:g_clear_weak_pointer
Unexecuted instantiation: gresourcefile.c:g_clear_weak_pointer
Unexecuted instantiation: gsocket.c:g_clear_weak_pointer
Unexecuted instantiation: gsocketaddress.c:g_clear_weak_pointer
Unexecuted instantiation: gsocketaddressenumerator.c:g_clear_weak_pointer
Unexecuted instantiation: gsocketconnectable.c:g_clear_weak_pointer
Unexecuted instantiation: gsocketconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gsocketcontrolmessage.c:g_clear_weak_pointer
Unexecuted instantiation: gsocketinputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gsocketoutputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gtcpconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gtlsbackend.c:g_clear_weak_pointer
Unexecuted instantiation: gtlsdatabase.c:g_clear_weak_pointer
Unexecuted instantiation: gtlsinteraction.c:g_clear_weak_pointer
Unexecuted instantiation: gtlspassword.c:g_clear_weak_pointer
Unexecuted instantiation: gunionvolumemonitor.c:g_clear_weak_pointer
Unexecuted instantiation: gunixconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gunixfdlist.c:g_clear_weak_pointer
Unexecuted instantiation: gunixcredentialsmessage.c:g_clear_weak_pointer
Unexecuted instantiation: gunixsocketaddress.c:g_clear_weak_pointer
Unexecuted instantiation: gvolumemonitor.c:g_clear_weak_pointer
Unexecuted instantiation: giounix-private.c:g_clear_weak_pointer
Unexecuted instantiation: gunixfdmessage.c:g_clear_weak_pointer
Unexecuted instantiation: gunixmounts.c:g_clear_weak_pointer
Unexecuted instantiation: gunixvolumemonitor.c:g_clear_weak_pointer
Unexecuted instantiation: gfdonotificationbackend.c:g_clear_weak_pointer
Unexecuted instantiation: ggtknotificationbackend.c:g_clear_weak_pointer
Unexecuted instantiation: gnetworkmonitornetlink.c:g_clear_weak_pointer
Unexecuted instantiation: gnetworkmonitornm.c:g_clear_weak_pointer
Unexecuted instantiation: gapplication.c:g_clear_weak_pointer
Unexecuted instantiation: gapplicationcommandline.c:g_clear_weak_pointer
Unexecuted instantiation: gapplicationimpl-dbus.c:g_clear_weak_pointer
Unexecuted instantiation: gactiongroup.c:g_clear_weak_pointer
Unexecuted instantiation: gactionmap.c:g_clear_weak_pointer
Unexecuted instantiation: gsimpleactiongroup.c:g_clear_weak_pointer
Unexecuted instantiation: gremoteactiongroup.c:g_clear_weak_pointer
Unexecuted instantiation: gactiongroupexporter.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusactiongroup.c:g_clear_weak_pointer
Unexecuted instantiation: gaction.c:g_clear_weak_pointer
Unexecuted instantiation: gsimpleaction.c:g_clear_weak_pointer
Unexecuted instantiation: gnotification.c:g_clear_weak_pointer
Unexecuted instantiation: gnotificationbackend.c:g_clear_weak_pointer
Unexecuted instantiation: gkeyfilesettingsbackend.c:g_clear_weak_pointer
Unexecuted instantiation: gmemorysettingsbackend.c:g_clear_weak_pointer
Unexecuted instantiation: gnullsettingsbackend.c:g_clear_weak_pointer
Unexecuted instantiation: gsettingsbackend.c:g_clear_weak_pointer
Unexecuted instantiation: gsettings.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusaddress.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusauthobserver.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusauth.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusauthmechanism.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusauthmechanismanon.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusauthmechanismexternal.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusauthmechanismsha1.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusnamewatching.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusproxy.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusinterface.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusinterfaceskeleton.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusobject.c:g_clear_weak_pointer
Unexecuted instantiation: gdbusobjectskeleton.c:g_clear_weak_pointer
Unexecuted instantiation: gopenuriportal.c:g_clear_weak_pointer
Unexecuted instantiation: gmemorymonitorportal.c:g_clear_weak_pointer
Unexecuted instantiation: gnetworkmonitorportal.c:g_clear_weak_pointer
Unexecuted instantiation: gpowerprofilemonitorportal.c:g_clear_weak_pointer
Unexecuted instantiation: gproxyresolverportal.c:g_clear_weak_pointer
Unexecuted instantiation: gtrashportal.c:g_clear_weak_pointer
Unexecuted instantiation: gportalsupport.c:g_clear_weak_pointer
Unexecuted instantiation: gportalnotificationbackend.c:g_clear_weak_pointer
Unexecuted instantiation: gsandbox.c:g_clear_weak_pointer
Unexecuted instantiation: ghttpproxy.c:g_clear_weak_pointer
Unexecuted instantiation: gsocks4proxy.c:g_clear_weak_pointer
Unexecuted instantiation: gsocks4aproxy.c:g_clear_weak_pointer
Unexecuted instantiation: gsocks5proxy.c:g_clear_weak_pointer
Unexecuted instantiation: ginotifyfilemonitor.c:g_clear_weak_pointer
Unexecuted instantiation: gcredentials.c:g_clear_weak_pointer
Unexecuted instantiation: gdatagrambased.c:g_clear_weak_pointer
Unexecuted instantiation: gdataoutputstream.c:g_clear_weak_pointer
Unexecuted instantiation: gdebugcontroller.c:g_clear_weak_pointer
Unexecuted instantiation: gdebugcontrollerdbus.c:g_clear_weak_pointer
Unexecuted instantiation: gdrive.c:g_clear_weak_pointer
Unexecuted instantiation: gdummyproxyresolver.c:g_clear_weak_pointer
Unexecuted instantiation: gdummytlsbackend.c:g_clear_weak_pointer
Unexecuted instantiation: ginetaddress.c:g_clear_weak_pointer
Unexecuted instantiation: ginetaddressmask.c:g_clear_weak_pointer
Unexecuted instantiation: ginetsocketaddress.c:g_clear_weak_pointer
Unexecuted instantiation: gmount.c:g_clear_weak_pointer
Unexecuted instantiation: gnativesocketaddress.c:g_clear_weak_pointer
Unexecuted instantiation: gnetworkaddress.c:g_clear_weak_pointer
Unexecuted instantiation: gnetworking.c:g_clear_weak_pointer
Unexecuted instantiation: gproxyaddress.c:g_clear_weak_pointer
Unexecuted instantiation: gproxyaddressenumerator.c:g_clear_weak_pointer
Unexecuted instantiation: gresolver.c:g_clear_weak_pointer
Unexecuted instantiation: gsimplepermission.c:g_clear_weak_pointer
Unexecuted instantiation: gsocketclient.c:g_clear_weak_pointer
Unexecuted instantiation: gsrvtarget.c:g_clear_weak_pointer
Unexecuted instantiation: gtcpwrapperconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gthreadedresolver.c:g_clear_weak_pointer
Unexecuted instantiation: gtlscertificate.c:g_clear_weak_pointer
Unexecuted instantiation: gtlsclientconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gtlsconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gtlsfiledatabase.c:g_clear_weak_pointer
Unexecuted instantiation: gtlsserverconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gdtlsconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gdtlsclientconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gdtlsserverconnection.c:g_clear_weak_pointer
Unexecuted instantiation: gvolume.c:g_clear_weak_pointer
Unexecuted instantiation: gunixmount.c:g_clear_weak_pointer
Unexecuted instantiation: gunixvolume.c:g_clear_weak_pointer
Unexecuted instantiation: gdelayedsettingsbackend.c:g_clear_weak_pointer
Unexecuted instantiation: gsettingsschema.c:g_clear_weak_pointer
Unexecuted instantiation: gsettings-mapping.c:g_clear_weak_pointer
Unexecuted instantiation: inotify-helper.c:g_clear_weak_pointer
Unexecuted instantiation: gnetworkservice.c:g_clear_weak_pointer
Unexecuted instantiation: gpermission.c:g_clear_weak_pointer
Unexecuted instantiation: gsubprocess.c:g_clear_weak_pointer
Unexecuted instantiation: gboxed.c:g_clear_weak_pointer
Unexecuted instantiation: gclosure.c:g_clear_weak_pointer
Unexecuted instantiation: genums.c:g_clear_weak_pointer
Unexecuted instantiation: gmarshal.c:g_clear_weak_pointer
Unexecuted instantiation: gobject.c:g_clear_weak_pointer
Unexecuted instantiation: gparam.c:g_clear_weak_pointer
Unexecuted instantiation: gparamspecs.c:g_clear_weak_pointer
Unexecuted instantiation: gsignal.c:g_clear_weak_pointer
Unexecuted instantiation: gtype.c:g_clear_weak_pointer
Unexecuted instantiation: gtypemodule.c:g_clear_weak_pointer
Unexecuted instantiation: gvalue.c:g_clear_weak_pointer
Unexecuted instantiation: gvaluetransform.c:g_clear_weak_pointer
Unexecuted instantiation: gvaluetypes.c:g_clear_weak_pointer
860
861
#define g_clear_weak_pointer(weak_pointer_location) \
862
 (/* Check types match. */ \
863
  (g_clear_weak_pointer) ((gpointer *) (weak_pointer_location)) \
864
 )
865
866
/**
867
 * g_set_weak_pointer: (skip)
868
 * @weak_pointer_location: the memory address of a pointer
869
 * @new_object: (nullable) (transfer none): a pointer to the new #GObject to
870
 *   assign to it, or %NULL to clear the pointer
871
 *
872
 * Updates a pointer to weakly refer to @new_object.
873
 *
874
 * It assigns @new_object to @weak_pointer_location and ensures
875
 * that @weak_pointer_location will automatically be set to %NULL
876
 * if @new_object gets destroyed. The assignment is not atomic.
877
 * The weak reference is not thread-safe, see g_object_add_weak_pointer()
878
 * for details.
879
 *
880
 * The @weak_pointer_location argument must not be %NULL.
881
 *
882
 * A macro is also included that allows this function to be used without
883
 * pointer casts. The function itself is static inline, so its address may vary
884
 * between compilation units.
885
 *
886
 * One convenient usage of this function is in implementing property setters:
887
 * |[
888
 *   void
889
 *   foo_set_bar (Foo *foo,
890
 *                Bar *new_bar)
891
 *   {
892
 *     g_return_if_fail (IS_FOO (foo));
893
 *     g_return_if_fail (new_bar == NULL || IS_BAR (new_bar));
894
 *
895
 *     if (g_set_weak_pointer (&foo->bar, new_bar))
896
 *       g_object_notify (foo, "bar");
897
 *   }
898
 * ]|
899
 *
900
 * Returns: %TRUE if the value of @weak_pointer_location changed, %FALSE otherwise
901
 *
902
 * Since: 2.56
903
 */
904
static inline gboolean
905
(g_set_weak_pointer) (gpointer *weak_pointer_location,
906
                      GObject  *new_object)
907
0
{
908
0
  GObject *old_object = (GObject *) *weak_pointer_location;
909
0
910
0
  /* elide a (weak_pointer_location != NULL) check because most of the time we
911
0
   * will be operating on struct members with a constant offset, so a NULL
912
0
   * check would not catch bugs
913
0
   */
914
0
915
0
  if (old_object == new_object)
916
0
    return FALSE;
917
0
918
0
  if (old_object != NULL)
919
0
    g_object_remove_weak_pointer (old_object, weak_pointer_location);
920
0
921
0
  *weak_pointer_location = new_object;
922
0
923
0
  if (new_object != NULL)
924
0
    g_object_add_weak_pointer (new_object, weak_pointer_location);
925
0
926
0
  return TRUE;
927
0
}
Unexecuted instantiation: gasyncresult.c:g_set_weak_pointer
Unexecuted instantiation: gcancellable.c:g_set_weak_pointer
Unexecuted instantiation: gconverter.c:g_set_weak_pointer
Unexecuted instantiation: gconverterinputstream.c:g_set_weak_pointer
Unexecuted instantiation: gconverteroutputstream.c:g_set_weak_pointer
Unexecuted instantiation: gdatainputstream.c:g_set_weak_pointer
Unexecuted instantiation: gfile.c:g_set_weak_pointer
Unexecuted instantiation: gfileattribute.c:g_set_weak_pointer
Unexecuted instantiation: gfileenumerator.c:g_set_weak_pointer
Unexecuted instantiation: gfileinfo.c:g_set_weak_pointer
Unexecuted instantiation: gfileinputstream.c:g_set_weak_pointer
Unexecuted instantiation: gfileoutputstream.c:g_set_weak_pointer
Unexecuted instantiation: gfilterinputstream.c:g_set_weak_pointer
Unexecuted instantiation: gfilteroutputstream.c:g_set_weak_pointer
Unexecuted instantiation: gicon.c:g_set_weak_pointer
Unexecuted instantiation: ginitable.c:g_set_weak_pointer
Unexecuted instantiation: ginputstream.c:g_set_weak_pointer
Unexecuted instantiation: gioerror.c:g_set_weak_pointer
Unexecuted instantiation: gmemoryinputstream.c:g_set_weak_pointer
Unexecuted instantiation: gmemoryoutputstream.c:g_set_weak_pointer
Unexecuted instantiation: goutputstream.c:g_set_weak_pointer
Unexecuted instantiation: gpollableinputstream.c:g_set_weak_pointer
Unexecuted instantiation: gpollableoutputstream.c:g_set_weak_pointer
Unexecuted instantiation: gpollableutils.c:g_set_weak_pointer
Unexecuted instantiation: gpollfilemonitor.c:g_set_weak_pointer
Unexecuted instantiation: gresource.c:g_set_weak_pointer
Unexecuted instantiation: gseekable.c:g_set_weak_pointer
Unexecuted instantiation: gsimpleasyncresult.c:g_set_weak_pointer
Unexecuted instantiation: gtask.c:g_set_weak_pointer
Unexecuted instantiation: gthemedicon.c:g_set_weak_pointer
Unexecuted instantiation: gvfs.c:g_set_weak_pointer
Unexecuted instantiation: gzlibcompressor.c:g_set_weak_pointer
Unexecuted instantiation: gzlibdecompressor.c:g_set_weak_pointer
Unexecuted instantiation: gdesktopappinfo.c:g_set_weak_pointer
Unexecuted instantiation: gcontenttype.c:g_set_weak_pointer
Unexecuted instantiation: gfiledescriptorbased.c:g_set_weak_pointer
Unexecuted instantiation: gunixinputstream.c:g_set_weak_pointer
Unexecuted instantiation: gunixoutputstream.c:g_set_weak_pointer
Unexecuted instantiation: gdbusutils.c:g_set_weak_pointer
Unexecuted instantiation: gdbuserror.c:g_set_weak_pointer
Unexecuted instantiation: gdbusconnection.c:g_set_weak_pointer
Unexecuted instantiation: gdbusmessage.c:g_set_weak_pointer
Unexecuted instantiation: gdbusprivate.c:g_set_weak_pointer
Unexecuted instantiation: gdbusintrospection.c:g_set_weak_pointer
Unexecuted instantiation: gdbusmethodinvocation.c:g_set_weak_pointer
Unexecuted instantiation: gdocumentportal.c:g_set_weak_pointer
Unexecuted instantiation: glocalfile.c:g_set_weak_pointer
Unexecuted instantiation: glocalfileenumerator.c:g_set_weak_pointer
Unexecuted instantiation: glocalfileinfo.c:g_set_weak_pointer
Unexecuted instantiation: glocalfileinputstream.c:g_set_weak_pointer
Unexecuted instantiation: glocalfilemonitor.c:g_set_weak_pointer
Unexecuted instantiation: glocalfileoutputstream.c:g_set_weak_pointer
Unexecuted instantiation: glocalfileiostream.c:g_set_weak_pointer
Unexecuted instantiation: glocalvfs.c:g_set_weak_pointer
Unexecuted instantiation: thumbnail-verify.c:g_set_weak_pointer
Unexecuted instantiation: gioenumtypes.c:g_set_weak_pointer
Unexecuted instantiation: xdp-dbus.c:g_set_weak_pointer
Unexecuted instantiation: gappinfo.c:g_set_weak_pointer
Unexecuted instantiation: gasyncinitable.c:g_set_weak_pointer
Unexecuted instantiation: gbufferedinputstream.c:g_set_weak_pointer
Unexecuted instantiation: gbytesicon.c:g_set_weak_pointer
Unexecuted instantiation: gcontextspecificgroup.c:g_set_weak_pointer
Unexecuted instantiation: gdummyfile.c:g_set_weak_pointer
Unexecuted instantiation: gemblem.c:g_set_weak_pointer
Unexecuted instantiation: gemblemedicon.c:g_set_weak_pointer
Unexecuted instantiation: gfileicon.c:g_set_weak_pointer
Unexecuted instantiation: gfilemonitor.c:g_set_weak_pointer
Unexecuted instantiation: gfileiostream.c:g_set_weak_pointer
Unexecuted instantiation: giomodule.c:g_set_weak_pointer
Unexecuted instantiation: giomodule-priv.c:g_set_weak_pointer
Unexecuted instantiation: gioscheduler.c:g_set_weak_pointer
Unexecuted instantiation: giostream.c:g_set_weak_pointer
Unexecuted instantiation: gloadableicon.c:g_set_weak_pointer
Unexecuted instantiation: gmarshal-internal.c:g_set_weak_pointer
Unexecuted instantiation: gmemorymonitor.c:g_set_weak_pointer
Unexecuted instantiation: gmemorymonitordbus.c:g_set_weak_pointer
Unexecuted instantiation: gnativevolumemonitor.c:g_set_weak_pointer
Unexecuted instantiation: gnetworkmonitor.c:g_set_weak_pointer
Unexecuted instantiation: gnetworkmonitorbase.c:g_set_weak_pointer
Unexecuted instantiation: gpowerprofilemonitor.c:g_set_weak_pointer
Unexecuted instantiation: gpowerprofilemonitordbus.c:g_set_weak_pointer
Unexecuted instantiation: gproxy.c:g_set_weak_pointer
Unexecuted instantiation: gproxyresolver.c:g_set_weak_pointer
Unexecuted instantiation: gresourcefile.c:g_set_weak_pointer
Unexecuted instantiation: gsocket.c:g_set_weak_pointer
Unexecuted instantiation: gsocketaddress.c:g_set_weak_pointer
Unexecuted instantiation: gsocketaddressenumerator.c:g_set_weak_pointer
Unexecuted instantiation: gsocketconnectable.c:g_set_weak_pointer
Unexecuted instantiation: gsocketconnection.c:g_set_weak_pointer
Unexecuted instantiation: gsocketcontrolmessage.c:g_set_weak_pointer
Unexecuted instantiation: gsocketinputstream.c:g_set_weak_pointer
Unexecuted instantiation: gsocketoutputstream.c:g_set_weak_pointer
Unexecuted instantiation: gtcpconnection.c:g_set_weak_pointer
Unexecuted instantiation: gtlsbackend.c:g_set_weak_pointer
Unexecuted instantiation: gtlsdatabase.c:g_set_weak_pointer
Unexecuted instantiation: gtlsinteraction.c:g_set_weak_pointer
Unexecuted instantiation: gtlspassword.c:g_set_weak_pointer
Unexecuted instantiation: gunionvolumemonitor.c:g_set_weak_pointer
Unexecuted instantiation: gunixconnection.c:g_set_weak_pointer
Unexecuted instantiation: gunixfdlist.c:g_set_weak_pointer
Unexecuted instantiation: gunixcredentialsmessage.c:g_set_weak_pointer
Unexecuted instantiation: gunixsocketaddress.c:g_set_weak_pointer
Unexecuted instantiation: gvolumemonitor.c:g_set_weak_pointer
Unexecuted instantiation: giounix-private.c:g_set_weak_pointer
Unexecuted instantiation: gunixfdmessage.c:g_set_weak_pointer
Unexecuted instantiation: gunixmounts.c:g_set_weak_pointer
Unexecuted instantiation: gunixvolumemonitor.c:g_set_weak_pointer
Unexecuted instantiation: gfdonotificationbackend.c:g_set_weak_pointer
Unexecuted instantiation: ggtknotificationbackend.c:g_set_weak_pointer
Unexecuted instantiation: gnetworkmonitornetlink.c:g_set_weak_pointer
Unexecuted instantiation: gnetworkmonitornm.c:g_set_weak_pointer
Unexecuted instantiation: gapplication.c:g_set_weak_pointer
Unexecuted instantiation: gapplicationcommandline.c:g_set_weak_pointer
Unexecuted instantiation: gapplicationimpl-dbus.c:g_set_weak_pointer
Unexecuted instantiation: gactiongroup.c:g_set_weak_pointer
Unexecuted instantiation: gactionmap.c:g_set_weak_pointer
Unexecuted instantiation: gsimpleactiongroup.c:g_set_weak_pointer
Unexecuted instantiation: gremoteactiongroup.c:g_set_weak_pointer
Unexecuted instantiation: gactiongroupexporter.c:g_set_weak_pointer
Unexecuted instantiation: gdbusactiongroup.c:g_set_weak_pointer
Unexecuted instantiation: gaction.c:g_set_weak_pointer
Unexecuted instantiation: gsimpleaction.c:g_set_weak_pointer
Unexecuted instantiation: gnotification.c:g_set_weak_pointer
Unexecuted instantiation: gnotificationbackend.c:g_set_weak_pointer
Unexecuted instantiation: gkeyfilesettingsbackend.c:g_set_weak_pointer
Unexecuted instantiation: gmemorysettingsbackend.c:g_set_weak_pointer
Unexecuted instantiation: gnullsettingsbackend.c:g_set_weak_pointer
Unexecuted instantiation: gsettingsbackend.c:g_set_weak_pointer
Unexecuted instantiation: gsettings.c:g_set_weak_pointer
Unexecuted instantiation: gdbusaddress.c:g_set_weak_pointer
Unexecuted instantiation: gdbusauthobserver.c:g_set_weak_pointer
Unexecuted instantiation: gdbusauth.c:g_set_weak_pointer
Unexecuted instantiation: gdbusauthmechanism.c:g_set_weak_pointer
Unexecuted instantiation: gdbusauthmechanismanon.c:g_set_weak_pointer
Unexecuted instantiation: gdbusauthmechanismexternal.c:g_set_weak_pointer
Unexecuted instantiation: gdbusauthmechanismsha1.c:g_set_weak_pointer
Unexecuted instantiation: gdbusnamewatching.c:g_set_weak_pointer
Unexecuted instantiation: gdbusproxy.c:g_set_weak_pointer
Unexecuted instantiation: gdbusinterface.c:g_set_weak_pointer
Unexecuted instantiation: gdbusinterfaceskeleton.c:g_set_weak_pointer
Unexecuted instantiation: gdbusobject.c:g_set_weak_pointer
Unexecuted instantiation: gdbusobjectskeleton.c:g_set_weak_pointer
Unexecuted instantiation: gopenuriportal.c:g_set_weak_pointer
Unexecuted instantiation: gmemorymonitorportal.c:g_set_weak_pointer
Unexecuted instantiation: gnetworkmonitorportal.c:g_set_weak_pointer
Unexecuted instantiation: gpowerprofilemonitorportal.c:g_set_weak_pointer
Unexecuted instantiation: gproxyresolverportal.c:g_set_weak_pointer
Unexecuted instantiation: gtrashportal.c:g_set_weak_pointer
Unexecuted instantiation: gportalsupport.c:g_set_weak_pointer
Unexecuted instantiation: gportalnotificationbackend.c:g_set_weak_pointer
Unexecuted instantiation: gsandbox.c:g_set_weak_pointer
Unexecuted instantiation: ghttpproxy.c:g_set_weak_pointer
Unexecuted instantiation: gsocks4proxy.c:g_set_weak_pointer
Unexecuted instantiation: gsocks4aproxy.c:g_set_weak_pointer
Unexecuted instantiation: gsocks5proxy.c:g_set_weak_pointer
Unexecuted instantiation: ginotifyfilemonitor.c:g_set_weak_pointer
Unexecuted instantiation: gcredentials.c:g_set_weak_pointer
Unexecuted instantiation: gdatagrambased.c:g_set_weak_pointer
Unexecuted instantiation: gdataoutputstream.c:g_set_weak_pointer
Unexecuted instantiation: gdebugcontroller.c:g_set_weak_pointer
Unexecuted instantiation: gdebugcontrollerdbus.c:g_set_weak_pointer
Unexecuted instantiation: gdrive.c:g_set_weak_pointer
Unexecuted instantiation: gdummyproxyresolver.c:g_set_weak_pointer
Unexecuted instantiation: gdummytlsbackend.c:g_set_weak_pointer
Unexecuted instantiation: ginetaddress.c:g_set_weak_pointer
Unexecuted instantiation: ginetaddressmask.c:g_set_weak_pointer
Unexecuted instantiation: ginetsocketaddress.c:g_set_weak_pointer
Unexecuted instantiation: gmount.c:g_set_weak_pointer
Unexecuted instantiation: gnativesocketaddress.c:g_set_weak_pointer
Unexecuted instantiation: gnetworkaddress.c:g_set_weak_pointer
Unexecuted instantiation: gnetworking.c:g_set_weak_pointer
Unexecuted instantiation: gproxyaddress.c:g_set_weak_pointer
Unexecuted instantiation: gproxyaddressenumerator.c:g_set_weak_pointer
Unexecuted instantiation: gresolver.c:g_set_weak_pointer
Unexecuted instantiation: gsimplepermission.c:g_set_weak_pointer
Unexecuted instantiation: gsocketclient.c:g_set_weak_pointer
Unexecuted instantiation: gsrvtarget.c:g_set_weak_pointer
Unexecuted instantiation: gtcpwrapperconnection.c:g_set_weak_pointer
Unexecuted instantiation: gthreadedresolver.c:g_set_weak_pointer
Unexecuted instantiation: gtlscertificate.c:g_set_weak_pointer
Unexecuted instantiation: gtlsclientconnection.c:g_set_weak_pointer
Unexecuted instantiation: gtlsconnection.c:g_set_weak_pointer
Unexecuted instantiation: gtlsfiledatabase.c:g_set_weak_pointer
Unexecuted instantiation: gtlsserverconnection.c:g_set_weak_pointer
Unexecuted instantiation: gdtlsconnection.c:g_set_weak_pointer
Unexecuted instantiation: gdtlsclientconnection.c:g_set_weak_pointer
Unexecuted instantiation: gdtlsserverconnection.c:g_set_weak_pointer
Unexecuted instantiation: gvolume.c:g_set_weak_pointer
Unexecuted instantiation: gunixmount.c:g_set_weak_pointer
Unexecuted instantiation: gunixvolume.c:g_set_weak_pointer
Unexecuted instantiation: gdelayedsettingsbackend.c:g_set_weak_pointer
Unexecuted instantiation: gsettingsschema.c:g_set_weak_pointer
Unexecuted instantiation: gsettings-mapping.c:g_set_weak_pointer
Unexecuted instantiation: inotify-helper.c:g_set_weak_pointer
Unexecuted instantiation: gnetworkservice.c:g_set_weak_pointer
Unexecuted instantiation: gpermission.c:g_set_weak_pointer
Unexecuted instantiation: gsubprocess.c:g_set_weak_pointer
Unexecuted instantiation: gboxed.c:g_set_weak_pointer
Unexecuted instantiation: gclosure.c:g_set_weak_pointer
Unexecuted instantiation: genums.c:g_set_weak_pointer
Unexecuted instantiation: gmarshal.c:g_set_weak_pointer
Unexecuted instantiation: gobject.c:g_set_weak_pointer
Unexecuted instantiation: gparam.c:g_set_weak_pointer
Unexecuted instantiation: gparamspecs.c:g_set_weak_pointer
Unexecuted instantiation: gsignal.c:g_set_weak_pointer
Unexecuted instantiation: gtype.c:g_set_weak_pointer
Unexecuted instantiation: gtypemodule.c:g_set_weak_pointer
Unexecuted instantiation: gvalue.c:g_set_weak_pointer
Unexecuted instantiation: gvaluetransform.c:g_set_weak_pointer
Unexecuted instantiation: gvaluetypes.c:g_set_weak_pointer
928
929
#define g_set_weak_pointer(weak_pointer_location, new_object) \
930
 (/* Check types match. */ \
931
  0 ? *(weak_pointer_location) = (new_object), FALSE : \
932
  (g_set_weak_pointer) ((gpointer *) (weak_pointer_location), (GObject *) (new_object)) \
933
 )
934
935
typedef struct {
936
    /*<private>*/
937
    union { gpointer p; } priv;
938
} GWeakRef;
939
940
GOBJECT_AVAILABLE_IN_ALL
941
void     g_weak_ref_init       (GWeakRef *weak_ref,
942
                                gpointer  object);
943
GOBJECT_AVAILABLE_IN_ALL
944
void     g_weak_ref_clear      (GWeakRef *weak_ref);
945
GOBJECT_AVAILABLE_IN_ALL
946
gpointer g_weak_ref_get        (GWeakRef *weak_ref);
947
GOBJECT_AVAILABLE_IN_ALL
948
void     g_weak_ref_set        (GWeakRef *weak_ref,
949
                                gpointer  object);
950
951
G_END_DECLS
952
953
#endif /* __G_OBJECT_H__ */