[evolution-data-server] Make EFileCache changes freezer recursiveable
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Make EFileCache changes freezer recursiveable
- Date: Tue, 16 Nov 2010 12:49:50 +0000 (UTC)
commit 254cab9f51e9e619953cebaee926b4c6df5620d4
Author: Milan Crha <mcrha redhat com>
Date: Tue Nov 16 13:48:34 2010 +0100
Make EFileCache changes freezer recursiveable
libebackend/e-file-cache.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/libebackend/e-file-cache.c b/libebackend/e-file-cache.c
index fb0d90c..505d0d7 100644
--- a/libebackend/e-file-cache.c
+++ b/libebackend/e-file-cache.c
@@ -34,7 +34,7 @@ struct _EFileCachePrivate {
gchar *filename;
EXmlHash *xml_hash;
gboolean dirty;
- gboolean frozen;
+ guint32 frozen;
};
/* Property IDs */
@@ -159,7 +159,7 @@ e_file_cache_init (EFileCache *cache)
priv = g_new0 (EFileCachePrivate, 1);
priv->dirty = FALSE;
- priv->frozen = FALSE;
+ priv->frozen = 0;
cache->priv = priv;
}
@@ -463,7 +463,8 @@ e_file_cache_freeze_changes (EFileCache *cache)
priv = cache->priv;
- priv->frozen = TRUE;
+ priv->frozen++;
+ g_return_if_fail (priv->frozen > 0);
}
/**
@@ -481,8 +482,10 @@ e_file_cache_thaw_changes (EFileCache *cache)
priv = cache->priv;
- priv->frozen = FALSE;
- if (priv->dirty) {
+ g_return_if_fail (priv->frozen > 0);
+
+ priv->frozen--;
+ if (!priv->frozen && priv->dirty) {
e_xmlhash_write (priv->xml_hash);
priv->dirty = FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]