summaryrefslogtreecommitdiff
path: root/gobject/gobject.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2022-05-29 18:50:22 -0400
committerMatthias Clasen <mclasen@redhat.com>2022-06-01 11:49:56 -0400
commitb5e1f3426046b8d1855340efc67fc338061f41aa (patch)
tree6a99410fa5e1118ff3cf94bb023fa6c92fb57d67 /gobject/gobject.c
parenta99cebe0c98b622bc7535dc9f531dfdd59cdede1 (diff)
downloadglib-gobject-speedups.tar.gz
gobject: Avoid redundant atomicsgobject-speedups
According to the commit that introduced these calls (4b334ef8f1393c997a2d83d), we are checking the refcount here to avoid calling g_object_ref when the refcount is 0, in the rare case that notification would be triggered during finalize. But we are now freezing notifications during finalize, and after recent changes, we no longer call g_object_ref for notification while a freeze is in place.
Diffstat (limited to 'gobject/gobject.c')
-rw-r--r--gobject/gobject.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/gobject/gobject.c b/gobject/gobject.c
index e90fc7b96..bbf516457 100644
--- a/gobject/gobject.c
+++ b/gobject/gobject.c
@@ -321,8 +321,6 @@ g_object_notify_queue_thaw (GObject *object,
GSList *slist;
guint n_pspecs = 0;
- g_return_if_fail (g_atomic_int_get(&object->ref_count) > 0);
-
G_LOCK(notify_lock);
/* Just make sure we never get into some nasty race condition */
@@ -335,7 +333,7 @@ g_object_notify_queue_thaw (GObject *object,
nqueue->freeze_count--;
if (nqueue->freeze_count) {
- G_UNLOCK(notify_lock);
+ G_UNLOCK (notify_lock);
return;
}
@@ -1393,8 +1391,6 @@ g_object_notify (GObject *object,
g_return_if_fail (G_IS_OBJECT (object));
g_return_if_fail (property_name != NULL);
- if (g_atomic_int_get (&object->ref_count) == 0)
- return;
/* We don't need to get the redirect target
* (by, e.g. calling g_object_class_find_property())
@@ -1467,9 +1463,6 @@ g_object_notify_by_pspec (GObject *object,
g_return_if_fail (G_IS_OBJECT (object));
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
- if (g_atomic_int_get (&object->ref_count) == 0)
- return;
-
g_object_notify_by_spec_internal (object, pspec);
}