diff --git a/gtk/gtkcssvalue.c b/gtk/gtkcssvalue.c index ce2315c280..7f43e3f9f5 100644 --- a/gtk/gtkcssvalue.c +++ b/gtk/gtkcssvalue.c @@ -48,7 +48,7 @@ _gtk_css_value_ref (GtkCssValue *value) { gtk_internal_return_val_if_fail (value != NULL, NULL); - g_atomic_int_add (&value->ref_count, 1); + value->ref_count += 1; return value; } @@ -59,7 +59,8 @@ _gtk_css_value_unref (GtkCssValue *value) if (value == NULL) return; - if (!g_atomic_int_dec_and_test (&value->ref_count)) + value->ref_count -= 1; + if (value->ref_count > 0) return; value->class->free (value); diff --git a/gtk/gtkcssvalueprivate.h b/gtk/gtkcssvalueprivate.h index 6a5ab70058..77dc5c9e04 100644 --- a/gtk/gtkcssvalueprivate.h +++ b/gtk/gtkcssvalueprivate.h @@ -35,7 +35,7 @@ typedef struct _GtkCssValueClass GtkCssValueClass; /* using define instead of struct here so compilers get the packing right */ #define GTK_CSS_VALUE_BASE \ const GtkCssValueClass *class; \ - volatile gint ref_count; + gint ref_count; struct _GtkCssValueClass { void (* free) (GtkCssValue *value);