diff options
author | Not Zed <NotZed@Ximian.com> | 2002-04-03 04:03:42 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2002-04-03 04:03:42 +0800 |
commit | 0b20695032bc1b074f7f8287df527a01fb3bf6a2 (patch) | |
tree | aa5cb263180ba46de1e116c8a656691d87d480d3 /camel/camel-block-file.c | |
parent | 8842c7c34759922cac90751c5eb8532bd6b94ec0 (diff) | |
download | gsoc2013-evolution-0b20695032bc1b074f7f8287df527a01fb3bf6a2.tar gsoc2013-evolution-0b20695032bc1b074f7f8287df527a01fb3bf6a2.tar.gz gsoc2013-evolution-0b20695032bc1b074f7f8287df527a01fb3bf6a2.tar.bz2 gsoc2013-evolution-0b20695032bc1b074f7f8287df527a01fb3bf6a2.tar.lz gsoc2013-evolution-0b20695032bc1b074f7f8287df527a01fb3bf6a2.tar.xz gsoc2013-evolution-0b20695032bc1b074f7f8287df527a01fb3bf6a2.tar.zst gsoc2013-evolution-0b20695032bc1b074f7f8287df527a01fb3bf6a2.zip |
Sync the key tables explcitly.
2002-04-03 Not Zed <NotZed@Ximian.com>
* camel-text-index.c (text_index_sync): Sync the key tables
explcitly.
* camel-partition-table.c (camel_key_table_finalise): Sync root
block when done.
(camel_key_table_sync): New function, sync key table (root) explicitly.
2002-04-02 Not Zed <NotZed@Ximian.com>
* camel-block-file.c (camel_block_file_free_block): Mark root
block dirty when we change it (this function isn't used yet
anyway).
* camel-text-index.c (text_index_add_name_to_word): Touch the root
block when we modify the counts. Also, abort processing on any
errors.
(text_index_sync): Fix typo in comments. Sync the block file
inside the lock.
(text_index_compress_nosync): Lock the old index while we're
compressing.
(text_index_compress_nosync): Remove the bogus while() at the end
of the while() loops! Also plug a memleak - records weren't
freed.
(text_index_rename): Lock around rename op.
(text_index_add_name): More typos.
(text_index_sync): Touch root when changing it.
(text_index_add_name): "
(text_index_delete_name): "
(camel_text_index_new): Touch root if we change it.
(text_index_cursor_reset): Make sure we NULL pointers after we
free them (nothing uses this yet).
* camel-partition-table.c (hash_key): Remove some debug
accidentally left in.
(camel_partition_table_add): When linking in the next block list,
set the right previous pointer.
(camel_key_table_add): Simplify the 'left' calculation (it was
already ok though).
(camel_key_table_next): Initialise returns before processing.
Broaden the lock slightly, and simplify validity calculations.
svn path=/trunk/; revision=16323
Diffstat (limited to 'camel/camel-block-file.c')
-rw-r--r-- | camel/camel-block-file.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/camel/camel-block-file.c b/camel/camel-block-file.c index 0340f9ecdf..e73b266026 100644 --- a/camel/camel-block-file.c +++ b/camel/camel-block-file.c @@ -98,11 +98,22 @@ block_file_validate_root(CamelBlockFile *bs) fstat(bs->fd, &st); - d(printf("Validate root:\n")); - d(printf("version: %.8s (%.8s)\n", bs->root->version, bs->version)); - d(printf("block size: %d (%d)\n", br->block_size, bs->block_size)); - d(printf("free: %d (%d add size < %d)\n", br->free, br->free / bs->block_size * bs->block_size, (int)st.st_size)); - d(printf("last: %d (%d and size: %d)\n", br->free, br->free / bs->block_size * bs->block_size, (int)st.st_size)); + (printf("Validate root:\n")); + (printf("version: %.8s (%.8s)\n", bs->root->version, bs->version)); + (printf("block size: %d (%d)%s\n", br->block_size, bs->block_size, + br->block_size != bs->block_size ? " BAD":" OK")); + (printf("free: %ld (%d add size < %ld)%s\n", (long)br->free, br->free / bs->block_size * bs->block_size, (long)st.st_size, + (br->free > st.st_size) || (br->free % bs->block_size) != 0 ? " BAD":" OK")); + (printf("last: %ld (%d and size: %ld)%s\n", (long)br->last, br->last / bs->block_size * bs->block_size, (long)st.st_size, + (br->last != st.st_size) || ((br->last % bs->block_size) != 0) ? " BAD": " OK")); + (printf("flags: %s\n", (br->flags & CAMEL_BLOCK_FILE_SYNC)?"SYNC":"unSYNC")); + + printf("last = %ld, size = %ld\n", (unsigned long)br->last, (unsigned long)st.st_size); + + if (br->last != st.st_size) + printf("last != size!\n"); + else + printf("last == size?\n"); if (br->last == 0 || memcmp(bs->root->version, bs->version, 8) != 0 @@ -476,6 +487,7 @@ int camel_block_file_free_block(CamelBlockFile *bs, camel_block_t id) ((camel_block_t *)bl->data)[0] = bs->root->free; bs->root->free = bl->id; + bs->root_block->flags |= CAMEL_BLOCK_DIRTY; bl->flags |= CAMEL_BLOCK_DIRTY; camel_block_file_unref_block(bs, bl); |