diff options
author | Robb Matzke <matzke@llnl.gov> | 2000-05-18 16:40:20 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 2000-05-18 16:40:20 (GMT) |
commit | bc520e88b4ad3b175c0aeca2c90e021956676533 (patch) | |
tree | 814fa010e05cff2b586c3b947616f4af8b363cf4 /src/H5TB.c | |
parent | 356495d12608a896fdc67bef0ab446cb1a74f8f8 (diff) | |
download | hdf5-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.c | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -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 |