summaryrefslogtreecommitdiffstats
path: root/src/H5TB.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>2000-05-18 16:40:20 (GMT)
committerRobb Matzke <matzke@llnl.gov>2000-05-18 16:40:20 (GMT)
commitbc520e88b4ad3b175c0aeca2c90e021956676533 (patch)
tree814fa010e05cff2b586c3b947616f4af8b363cf4 /src/H5TB.c
parent356495d12608a896fdc67bef0ab446cb1a74f8f8 (diff)
downloadhdf5-bc520e88b4ad3b175c0aeca2c90e021956676533.zip
hdf5-bc520e88b4ad3b175c0aeca2c90e021956676533.tar.gz
hdf5-bc520e88b4ad3b175c0aeca2c90e021956676533.tar.bz2
[svn-r2262] * 2000-05-18
** src/H5Tconv.c ** src/H5Tpkg.h ** src/H5Tpublic.h The H5T_conv_struct_opt() function had a design flaw -- it didn't keep information about the stride to use to step through the temporary/background-value buffer and thus nested invocations would clobber each other's temp buffers. This was fixed by splitting the `stride' argument into `buf_stride' and `bkg_stride' arguments for all the conversion functions. THIS IS AN API CHANGE, but users will get a compiler warning when they pass their conversion function pointer to H5Tregister(). ** src/H5T.c ** src/H5Tprivate.h Added a bkg_stride argument to the H5T_convert() definition in order to fix a bug related to the optimized compound datatype conversion function. ** src/H5T.c ** src/H5A.c ** src/H5D.c ** src/H5Ofill.c ** src/H5P.c Added bkg_stride=0 argument to the H5T_convert() calls. ** test/dtypes.c Added a test for the H5T_conv_struct_opt() bug fixed above. ** src/H5FL.c The H5FL_term() function should return non-zero even when it couldn't free all the free lists do to their being used by some other package. When that other package terminates it will return non-zero, causing H5FL_term() to be called again. This fixes some of the `infinite loop closing library' messages. ** tools/pdb2hdf Uses print_version() instead of doing that itself. ** src/H5Ppublic.h Renamed H5Pget_gc_reference() declaration to make it match the definition. ** src/H5FDlog.c Added API tracing macros. Removed `const' qualifier from a `char*' member of a struct which was allocated on the heap. ** src/H5TB.c Added curly braces to a couple deeply-nested `if' statements to make them clearer and to shut up the increadibly stupid and just plain incorrect gcc warning about ambiguous `else'. ** test/titerate.c Removed incomplete initialization in favor of memset() for one auto variable to stop compiler warnings. ** tools/Depencencies Regenerated to remove references to h5dumputil.c
Diffstat (limited to 'src/H5TB.c')
-rw-r--r--src/H5TB.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/H5TB.c b/src/H5TB.c
index dc71318..35da8fa 100644
--- a/src/H5TB.c
+++ b/src/H5TB.c
@@ -711,7 +711,6 @@ H5TB_rem(TBBT_NODE ** root, TBBT_NODE * node, void * *kp)
H5FL_FREE(TBBT_NODE,leaf);
H5TB_balance(root, par, side, -1);
-done:
((TBBT_TREE *) root)->count--;
FUNC_LEAVE(data);
@@ -1388,14 +1387,21 @@ H5TB_balance(TBBT_NODE ** root, TBBT_NODE * ptr, intn side, intn added)
if (ptr->link[Other(side)] != NULL && ptr->link[Other(side)]->Parent == ptr)
{
ptr->flags |= (tbbt_flag)TBBT_HEAVY(Other(side)); /* Other side longer */
- if (ptr->Parent)
- if (ptr->Parent->Rchild == ptr) /* we're the right child */
- if (Heavy(ptr->Parent, RIGHT) && LeftCnt(ptr->Parent) == 1)
+ if (ptr->Parent) {
+ if (ptr->Parent->Rchild == ptr) {
+ /* we're the right child */
+ if (Heavy(ptr->Parent, RIGHT) && LeftCnt(ptr->Parent) == 1) {
deeper = 0;
- else
- /* we're the left child */ if (Heavy(ptr->Parent, LEFT))
- if (ptr->Parent->Rchild && !UnBal(ptr->Parent->Rchild))
- deeper = 0;
+ } else {
+ /* we're the left child */
+ if (Heavy(ptr->Parent, LEFT)) {
+ if (ptr->Parent->Rchild && !UnBal(ptr->Parent->Rchild)) {
+ deeper = 0;
+ }
+ }
+ }
+ }
+ }
}
}
else