[glib/gobject-speedups: 23/23] gobject: Avoid redundant atomics
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/gobject-speedups: 23/23] gobject: Avoid redundant atomics
- Date: Tue, 31 May 2022 20:15:10 +0000 (UTC)
commit ba53764919721333f6801a86a7002ada9ca5996e
Author: Matthias Clasen <mclasen redhat com>
Date: Sun May 29 18:50:22 2022 -0400
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 7efb0a1c3b..a2fa5493bb 100644
--- a/gobject/gobject.c
+++ b/gobject/gobject.c
@@ -319,8 +319,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 */
@@ -333,7 +331,7 @@ g_object_notify_queue_thaw (GObject *object,
nqueue->freeze_count--;
if (nqueue->freeze_count) {
- G_UNLOCK(notify_lock);
+ G_UNLOCK (notify_lock);
return;
}
@@ -1389,8 +1387,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())
@@ -1463,9 +1459,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);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]