summaryrefslogtreecommitdiffstats
path: root/src/H5D.c
diff options
context:
space:
mode:
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,