diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2010-02-16 17:23:38 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2010-02-16 17:23:38 (GMT) |
commit | feae1cb35ffd0199e9fa03d97f66100919e4094d (patch) | |
tree | 04f0297afa6831a48974196db64df75abbbe7972 /src/H5Dbtree.c | |
parent | bbd0b5515888c00ce4ed5f4c7af635d5c9aa2490 (diff) | |
download | hdf5-feae1cb35ffd0199e9fa03d97f66100919e4094d.zip hdf5-feae1cb35ffd0199e9fa03d97f66100919e4094d.tar.gz hdf5-feae1cb35ffd0199e9fa03d97f66100919e4094d.tar.bz2 |
[svn-r18263] Purpose: Fix bug in b-tree code
Description:
In certain cases, removal of an object in a v1 b-tree would cause the leftmost
key in the right neighbor to be overwritten. While this did not pose a problem
for group b-trees, with chunked datasets it would overwrite the offset value
of the neighbor's leftmost child, causing corruption. Reworked the code to
differentiate between b-trees whose children are fundamentally associated with
their left key and those who are associated with their right key.
Tested: jam, linew, amani (h5committest)
Diffstat (limited to 'src/H5Dbtree.c')
-rw-r--r-- | src/H5Dbtree.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/H5Dbtree.c b/src/H5Dbtree.c index c12865f..89d2596 100644 --- a/src/H5Dbtree.c +++ b/src/H5Dbtree.c @@ -189,9 +189,10 @@ H5B_class_t H5B_BTREE[1] = {{ H5D_btree_cmp3, /*cmp3 */ H5D_btree_found, /*found */ H5D_btree_insert, /*insert */ + H5B_LEFT, /*critical key */ FALSE, /*follow min branch? */ FALSE, /*follow max branch? */ - H5D_btree_remove, /*remove */ + H5D_btree_remove, /*remove */ H5D_btree_decode_key, /*decode */ H5D_btree_encode_key, /*encode */ H5D_btree_debug_key, /*debug */ |