summaryrefslogtreecommitdiffstats
path: root/src/H5Dbtree.c
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2010-02-16 17:18:38 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2010-02-16 17:18:38 (GMT)
commit7c82bbf030c2fbd226addc94db35fda253d83ca3 (patch)
tree761e19f98d2b21a11e660272bb07127d2b89baaa /src/H5Dbtree.c
parent5156b8a043f744799e0dc77a7dfa0690502a3397 (diff)
downloadhdf5-7c82bbf030c2fbd226addc94db35fda253d83ca3.zip
hdf5-7c82bbf030c2fbd226addc94db35fda253d83ca3.tar.gz
hdf5-7c82bbf030c2fbd226addc94db35fda253d83ca3.tar.bz2
[svn-r18262] 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 */