summaryrefslogtreecommitdiffstats
path: root/src/H5Dbtree.c
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2010-02-16 17:23:38 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2010-02-16 17:23:38 (GMT)
commitfeae1cb35ffd0199e9fa03d97f66100919e4094d (patch)
tree04f0297afa6831a48974196db64df75abbbe7972 /src/H5Dbtree.c
parentbbd0b5515888c00ce4ed5f4c7af635d5c9aa2490 (diff)
downloadhdf5-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.c3
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 */