changeset 3380:bf654e4789a1 HEAD

Pointers into file cache may change as a result of file_cache_write().
author Timo Sirainen <tss@iki.fi>
date Sat, 14 May 2005 15:30:16 +0300
parents f8bf5e2a7fb0
children 91cc142dd4a2
files src/lib-index/mail-cache.c
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-cache.c	Sat May 14 15:22:54 2005 +0300
+++ b/src/lib-index/mail-cache.c	Sat May 14 15:30:16 2005 +0300
@@ -473,8 +473,14 @@
 		return -1;
 	}
 
-	if (cache->file_cache != NULL)
+	if (cache->file_cache != NULL) {
 		file_cache_write(cache->file_cache, data, size, offset);
+
+		/* data/hdr pointers may change if file cache was grown */
+		cache->data = file_cache_get_map(cache->file_cache,
+						 &cache->mmap_length);
+		cache->hdr = cache->data;
+	}
 	return 0;
 }