diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-08-27 16:48:50 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-08-27 16:48:50 (GMT) |
commit | eb5e01d37ca2570afc50756c9ed6a0be214502ec (patch) | |
tree | 08281269dc5b2eeef48286fb991bd6a05f71f6a3 /src/H5Shyper.c | |
parent | 11f1b67c878b17abc225d09fb2a2019f338f92b2 (diff) | |
download | hdf5-eb5e01d37ca2570afc50756c9ed6a0be214502ec.zip hdf5-eb5e01d37ca2570afc50756c9ed6a0be214502ec.tar.gz hdf5-eb5e01d37ca2570afc50756c9ed6a0be214502ec.tar.bz2 |
[svn-r620] Changes since 19980825
----------------------
./MANIFEST
./src/H5R.c [NEW]
./src/H5Rprivate.h [NEW]
./src/H5Rpublic.h [NEW]
./src/Makefile.in
./src/hdf5.h
./test/ragged.c [NEW]
Preliminary support for 2d ragged arrays for Mark Miller and
Jim Reus. Not fully implemented yet. The test is not actually
part of `make test' because we still have some memory problems.
./src/H5E.c
./src/H5Epublic.h
Added H5E_RAGGED as a major error number.
./bin/release
Checks the MANIFEST file against `svf ls' on systems that have
it.
./bin/trace
Fixed a bug that caused arguments of type `void *x[]' to not
be handled.
./src/H5.c
Removed unused variables and changed a couple types to
fix compiler warnings.
Added tracing support for ragged array object ID's and arrays
of pointers.
./src/H5D.c
H5Dcreate() will complain if either of the property lists are
invalid (instead of using the default).
./src/H5D.c
./src/H5Dprivate.h
Split H5Dget_space() into an API and internal function so it
can be called from the new ragged array layer.
./src/H5Fistore.c
Fixed warnings about unsigned vs. signed comparisons.
./src/H5Flow.c
Fixed a warning about a variable being shadowed in the MPI-IO
stuff.
./src/H5Iprivate.h
./src/H5Ipublic.h
Added the H5_RAGGED atom group.
./src/H5Shyper.c
Fixed some freeing-free-memory errors that resulted when
certain arrays were freed but the pointers were left in the
data structures. I simply set the pointers to null after they
were freed.
./src/H5Sprivate.h
./src/H5Sselect.c
Split the H5Sselect_hyperslab() function into an API and a
private function so it could be called from the ragged array
layer.
Added H5S_SEL_ERROR and H5S_SEL_N to the switch statements to
get rid or compiler warnings.
./src/H5Tconv.c
Removed a misleading comment.
./test/bittests.c
Fixed a warning about a printf().
./test/cmpd_dset.c
Fixed warnings about unused variables because of test #11
being commented out.
./bin/trace
Shortened the right margin for the output to allow room for
the `);' at the end of the TRACE() macros.
Diffstat (limited to 'src/H5Shyper.c')
-rw-r--r-- | src/H5Shyper.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/H5Shyper.c b/src/H5Shyper.c index d9a0e4a..cd0138c 100644 --- a/src/H5Shyper.c +++ b/src/H5Shyper.c @@ -1698,6 +1698,11 @@ done: COMMENTS, BUGS, ASSUMPTIONS EXAMPLES REVISION LOG + * Robb Matzke, 1998-08-25 + * The fields which are freed are set to NULL to prevent them from being + * freed again later. This fixes some allocation problems where + * changing the hyperslab selection of one data space causes a core dump + * when closing some other data space. --------------------------------------------------------------------------*/ herr_t H5S_hyper_release (H5S_t *space) @@ -1718,21 +1723,26 @@ H5S_hyper_release (H5S_t *space) /* Release the per-dimension selection info */ H5MM_xfree(space->select.sel_info.hyper.diminfo); + space->select.sel_info.hyper.diminfo = NULL; /* Release hi and lo boundary information */ for(i=0; i<space->extent.u.simple.rank; i++) { H5MM_xfree(space->select.sel_info.hyper.hyper_lst->lo_bounds[i]); + space->select.sel_info.hyper.hyper_lst->lo_bounds[i] = NULL; H5MM_xfree(space->select.sel_info.hyper.hyper_lst->hi_bounds[i]); + space->select.sel_info.hyper.hyper_lst->hi_bounds[i] = NULL; } /* end for */ H5MM_xfree(space->select.sel_info.hyper.hyper_lst->lo_bounds); + space->select.sel_info.hyper.hyper_lst->lo_bounds = NULL; H5MM_xfree(space->select.sel_info.hyper.hyper_lst->hi_bounds); + space->select.sel_info.hyper.hyper_lst->hi_bounds = NULL; /* Release list of selected regions */ curr=space->select.sel_info.hyper.hyper_lst->head; while(curr!=NULL) { next=curr->next; - H5MM_xfree(curr->start); - H5MM_xfree(curr->end); + curr->start = H5MM_xfree(curr->start); + curr->end = H5MM_xfree(curr->end); H5MM_xfree(curr); curr=next; } /* end while */ |