summaryrefslogtreecommitdiffstats
path: root/src/H5D.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1999-10-15 14:53:57 (GMT)
committerRobb Matzke <matzke@llnl.gov>1999-10-15 14:53:57 (GMT)
commit34e44e399edd8903f8104f8a6b74e96151150b16 (patch)
treef2cc428e6292eb4d60646b4e8f47e71f5cec29d8 /src/H5D.c
parent5246411f704970a2f6568dc7aaf9e7b5b7269505 (diff)
downloadhdf5-34e44e399edd8903f8104f8a6b74e96151150b16.zip
hdf5-34e44e399edd8903f8104f8a6b74e96151150b16.tar.gz
hdf5-34e44e399edd8903f8104f8a6b74e96151150b16.tar.bz2
[svn-r1753] Changes since 19991007
---------------------- ./configure.in ./src/H5config.h.in [REGENERATED] The /usr/ncsa/{include,lib} directories are only added if they actually exist. This fixes a warning on some systems. Checks for the <pdb.h> header file and also for either the PDB or Silo library, and if found prepares to compile the pdb2hdf program. ./config/distdep Relative path names for include files are changed to base names since the makefile contains the logic for searching and since it's likely that building the .distdep files happed from a location other than where they would be used in the file system. ./config/conclude.in Fixed shell errors when `for' loops iterate over nothing for the `uninstall' target. ./src/H5D.c ./src/H5Oefl.c File names for the external files are added to the heap when the dataset is created instead of when the object header is written. This fixes a rare infinite recursion bug. ./src/H5FD.c ./src/H5FDpublic.h Optimization to the free list causes H5FD_alloc() usage to go from >10 seconds to <0.4 second for one example (converting a 30MB equation of state file from PDB to HDF5 format). The optimization is to simply keep track of the largest item in the free list and not search the free list when the largest item is not big enough to satisfy the request. ./src/H5FDcore.c ./src/H5FDcore.h ./test/h5test.c If the `backing_store' property is true then a flush causes the entire contents of memory to be written to the specified file. This is in preparation for the ASCI/red optimizations and is currently tested by the pdb2hdf `--cached' switch. ./src/H5Odtypes.c Wrapped three long lines. ./tools/Makefile.in ./tools/pdb2hdf.c [NEW] A PDB-to-HDF5 translator. It only translates meta data -- the resulting HDF5 points into the PDB file for the raw data.
Diffstat (limited to 'src/H5D.c')
-rw-r--r--src/H5D.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/H5D.c b/src/H5D.c
index ab3823a..2ed2565 100644
--- a/src/H5D.c
+++ b/src/H5D.c
@@ -865,6 +865,10 @@ done:
* Robb Matzke, 27 Jul 1998
* Added the MTIME message to the dataset object header.
*
+ * Robb Matzke, 1999-10-14
+ * The names for the external file list are entered into the heap hear
+ * instead of when the efl message is encoded, preventing a possible
+ * infinite recursion situation.
*-------------------------------------------------------------------------
*/
H5D_t *
@@ -1066,6 +1070,17 @@ H5D_create(H5G_entry_t *loc, const char *name, const H5T_t *type,
HGOTO_ERROR (H5E_DATASET, H5E_CANTINIT, NULL,
"unable to create external file list name heap");
}
+ for (i=0; i<efl->nused; i++) {
+ size_t offset = H5HL_insert(f, efl->heap_addr,
+ HDstrlen(efl->slot[i].name)+1,
+ efl->slot[i].name);
+ assert(0==efl->slot[i].name_offset);
+ if ((size_t)(-1)==offset) {
+ HGOTO_ERROR(H5E_EFL, H5E_CANTINIT, NULL,
+ "unable to insert URL into name heap");
+ }
+ efl->slot[i].name_offset = offset;
+ }
if (H5O_modify (&(new_dset->ent), H5O_EFL, 0, H5O_FLAG_CONSTANT,
efl)<0) {
HGOTO_ERROR (H5E_DATASET, H5E_CANTINIT, NULL,