diff -r 148a120ea7d5 -r 8a3165c604f8 src/lib/cache.c --- a/src/lib/cache.c Sun Jan 24 23:03:12 2010 +0200 +++ b/src/lib/cache.c Sun Jan 24 23:04:55 2010 +0200 @@ -160,7 +160,7 @@ prot |= PROT_WRITE; } - // perform mmap() from second page on + // mmap() the full file including header if ((addr = mmap(NULL, PT_CACHE_HEADER_SIZE + cache->size, prot, MAP_SHARED, cache->fd, 0)) == MAP_FAILED) RETURN_ERROR(PT_ERR_CACHE_MMAP); @@ -245,7 +245,7 @@ return err; // calculate data size - cache->size = sizeof(*header) + header->height * header->row_bytes; + cache->size = header->height * header->row_bytes; // grow file if (ftruncate(cache->fd, PT_CACHE_HEADER_SIZE + cache->size) < 0) @@ -311,7 +311,7 @@ JUMP_ERROR(err); // calculate data size - cache->size = sizeof(header) + header.height * header.row_bytes; + cache->size = header.height * header.row_bytes; // mmap header and data if ((err = pt_cache_open_mmap(cache, &base, true)))