summaryrefslogtreecommitdiff
path: root/gio/gresource.c
diff options
context:
space:
mode:
Diffstat (limited to 'gio/gresource.c')
-rw-r--r--gio/gresource.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/gio/gresource.c b/gio/gresource.c
index 44d517d12..4ccd33364 100644
--- a/gio/gresource.c
+++ b/gio/gresource.c
@@ -1443,14 +1443,13 @@ g_static_resource_fini (GStaticResource *static_resource)
register_lazy_static_resources_unlocked ();
- resource = g_atomic_pointer_get (&static_resource->resource);
+ resource = g_atomic_pointer_exchange (&static_resource->resource, NULL);
if (resource)
{
/* There should be at least two references to the resource now: one for
* static_resource->resource, and one in the registered_resources list. */
g_assert (g_atomic_int_get (&resource->ref_count) >= 2);
- g_atomic_pointer_set (&static_resource->resource, NULL);
g_resources_unregister_unlocked (resource);
g_resource_unref (resource);
}