aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-store.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/e-mail-store.c')
-rw-r--r--mail/e-mail-store.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/mail/e-mail-store.c b/mail/e-mail-store.c
index 1aef04acf9..948683d5e4 100644
--- a/mail/e-mail-store.c
+++ b/mail/e-mail-store.c
@@ -104,7 +104,7 @@ store_info_ref (StoreInfo *store_info)
g_return_val_if_fail (store_info != NULL, store_info);
g_return_val_if_fail (store_info->ref_count > 0, store_info);
- g_atomic_int_add (&store_info->ref_count, 1);
+ g_atomic_int_inc (&store_info->ref_count);
return store_info;
}
@@ -115,19 +115,19 @@ store_info_unref (StoreInfo *store_info)
g_return_if_fail (store_info != NULL);
g_return_if_fail (store_info->ref_count > 0);
- if (g_atomic_int_add (&store_info->ref_count, -1) > 1)
- return;
+ if (g_atomic_int_dec_and_test (&store_info->ref_count)) {
- g_object_unref (store_info->store);
- g_free (store_info->display_name);
+ g_object_unref (store_info->store);
+ g_free (store_info->display_name);
- if (store_info->vtrash != NULL)
- g_object_unref (store_info->vtrash);
+ if (store_info->vtrash != NULL)
+ g_object_unref (store_info->vtrash);
- if (store_info->vjunk != NULL)
- g_object_unref (store_info->vjunk);
+ if (store_info->vjunk != NULL)
+ g_object_unref (store_info->vjunk);
- g_slice_free (StoreInfo, store_info);
+ g_slice_free (StoreInfo, store_info);
+ }
}
static void