From b5e1f3426046b8d1855340efc67fc338061f41aa Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 29 May 2022 18:50:22 -0400 Subject: [PATCH] gobject: Avoid redundant atomics 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. --- gobject/gobject.c | 9 +-------- 1 file changed, 1 insertion(+), 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); }