2006-04-25 [paul] 2.1.1cvs33
authorPaul Mangan <paul@claws-mail.org>
Tue, 25 Apr 2006 08:00:00 +0000 (08:00 +0000)
committerPaul Mangan <paul@claws-mail.org>
Tue, 25 Apr 2006 08:00:00 +0000 (08:00 +0000)
* src/folder.c
* src/folder.h
* src/folderview.c
complete the fix of bug #912
Thanks to Colin

ChangeLog
PATCHSETS
configure.ac
src/folder.c
src/folder.h
src/folderview.c

index cddec338a88eeeeea96fd10726ff06f94d1c13e9..442402afb6ef2c530b2ded4c9780b6b30a5db787 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-04-25 [paul]      2.1.1cvs33
+
+       * src/folder.c
+       * src/folder.h
+       * src/folderview.c
+               complete the fix of bug #912
+               Thanks to Colin
+
 2006-04-25 [colin]     2.1.1cvs32
 
        * src/news.c
index 57bb1847f29ac85a85d09bf6442c19e25b070dea..783c0b069fa18d74f332c1afef70cf53223445a7 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.28.2.16 -r 1.28.2.17 src/addrindex.c;  cvs diff -u -r 1.8.2.11 -r 1.8.2.12 src/editldap.c;  cvs diff -u -r 1.10.2.6 -r 1.10.2.7 src/editldap_basedn.c;  cvs diff -u -r 1.3.2.2 -r 1.3.2.3 src/editldap_basedn.h;  cvs diff -u -r 1.2.2.4 -r 1.2.2.5 src/ldapctrl.c;  cvs diff -u -r 1.1.4.4 -r 1.1.4.5 src/ldapctrl.h;  cvs diff -u -r 1.3.2.7 -r 1.3.2.8 src/ldapquery.c;  cvs diff -u -r 1.1.4.2 -r 1.1.4.3 src/ldaputil.c;  cvs diff -u -r 1.1.4.2 -r 1.1.4.3 src/ldaputil.h;  ) > 2.1.1cvs30.patchset
 ( cvs diff -u -r 1.382.2.267 -r 1.382.2.268 src/compose.c;  ) > 2.1.1cvs31.patchset
 ( cvs diff -u -r 1.83.2.67 -r 1.83.2.68 src/mimeview.c;  cvs diff -u -r 1.101.2.23 -r 1.101.2.24 src/news.c;  cvs diff -u -r 1.395.2.193 -r 1.395.2.194 src/summaryview.c;  cvs diff -u -r 1.68.2.22 -r 1.68.2.23 src/summaryview.h;  ) > 2.1.1cvs32.patchset
+( cvs diff -u -r 1.213.2.89 -r 1.213.2.90 src/folder.c;  cvs diff -u -r 1.87.2.26 -r 1.87.2.27 src/folder.h;  cvs diff -u -r 1.207.2.96 -r 1.207.2.97 src/folderview.c;  ) > 2.1.1cvs33.patchset
index d1a44c25dd7758831df07309b2e58ea3cecba6dc..80db978a9b0ba743cc461e462c151fb181ad390a 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=1
 MICRO_VERSION=1
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=32
+EXTRA_VERSION=33
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 6052714d15aa5874a4a76df82e80f1d6726f9129..a920fa2e5a1dd79e985d38b1c5a9e063c48f164b 100644 (file)
@@ -2050,13 +2050,13 @@ void folder_clean_cache_memory_force(void)
        prefs_common.cache_max_mem_usage = 0;
        prefs_common.cache_min_keep_time = 0;
 
-       folder_clean_cache_memory();
+       folder_clean_cache_memory(NULL);
 
        prefs_common.cache_max_mem_usage = old_cache_max_mem_usage;
        prefs_common.cache_min_keep_time = old_cache_min_keep_time;
 }
 
-void folder_clean_cache_memory(void)
+void folder_clean_cache_memory(FolderItem *protected_item)
 {
        gint memusage = 0;
 
@@ -2072,7 +2072,8 @@ void folder_clean_cache_memory(void)
                listitem = folder_item_list;
                while((listitem != NULL) && (memusage > (prefs_common.cache_max_mem_usage * 1024))) {
                        FolderItem *item = (FolderItem *)(listitem->data);
-
+                       if (item == protected_item)
+                               continue;
                        debug_print("Freeing cache memory for %s\n", item->path ? item->path : item->name);
                        memusage -= msgcache_get_memory_usage(item->cache);
                        folder_item_free_cache(item);
@@ -2130,7 +2131,7 @@ void folder_item_read_cache(FolderItem *item)
                item->cache = msgcache_new();
        }
 
-       folder_clean_cache_memory();
+       folder_clean_cache_memory(item);
 }
 
 void folder_item_write_cache(FolderItem *item)
index b383bee242955db1c65126bc36e134abcad91aa6..7d510e72eb1eb7afd70ebacef0a3650c8937f8c4 100644 (file)
@@ -798,7 +798,7 @@ const PersistPrefs *folder_get_persist_prefs
                                        (GHashTable *pptable, const char *name);
 
 void folder_item_restore_persist_prefs (FolderItem *item, GHashTable *pptable);
-void folder_clean_cache_memory         (void);
+void folder_clean_cache_memory         (FolderItem *protected_item);
 void folder_clean_cache_memory_force   (void);
 void folder_item_write_cache           (FolderItem *item);
 void folder_item_set_default_flags     (FolderItem *dest, MsgFlags *flags);
index 50ac3e3487c8c6cf20a14555c246ea9cc2e51a12..e1bab926f9986f0b82e7a2b68870676deb772a8f 100644 (file)
@@ -1969,7 +1969,7 @@ static void folderview_selected(GtkCTree *ctree, GtkCTreeNode *row,
        summary_set_prefs_from_folderitem(folderview->summaryview, item);
        opened = summary_show(folderview->summaryview, item);
        
-       folder_clean_cache_memory();
+       folder_clean_cache_memory(item);
 
        if (!opened) {
                gtkut_ctree_set_focus_row(ctree, folderview->opened);