diff options
author | Raymond Lu <songyulu@hdfgroup.org> | 2009-07-13 15:39:05 (GMT) |
---|---|---|
committer | Raymond Lu <songyulu@hdfgroup.org> | 2009-07-13 15:39:05 (GMT) |
commit | 75800cf6b5724a7b19fe37017f559fffdcf52d6c (patch) | |
tree | 0c09462bc8969ea3000c663bfdc540be34f54571 /src/H5Oattribute.c | |
parent | b50178ea1a00b36e0491e00bbb84dcf0ed862d29 (diff) | |
download | hdf5-75800cf6b5724a7b19fe37017f559fffdcf52d6c.zip hdf5-75800cf6b5724a7b19fe37017f559fffdcf52d6c.tar.gz hdf5-75800cf6b5724a7b19fe37017f559fffdcf52d6c.tar.bz2 |
[svn-r17176] In H5Odtype.c, the decoding function used to mark the datatype as on disk. I changed it
to undefined and let the caller functions decide the location of the datatype. For
H5Tdecode, it should mark the datatype as in memory. For other callers like H5Dopen or
H5Aopen, they should makr it as on disk.
Tested it on jam, smirom, linew.
Diffstat (limited to 'src/H5Oattribute.c')
-rw-r--r-- | src/H5Oattribute.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/H5Oattribute.c b/src/H5Oattribute.c index 735ca31..ba58526 100644 --- a/src/H5Oattribute.c +++ b/src/H5Oattribute.c @@ -536,6 +536,11 @@ H5O_attr_open_by_name(const H5O_loc_t *loc, const char *name, hid_t dxpl_id) HDassert(udata.attr); ret_value = udata.attr; } /* end else */ + + /* Mark datatype as being on disk now */ + if(H5T_set_loc(ret_value->shared->dt, loc->file, H5T_LOC_DISK) < 0) + HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, FAIL, "invalid datatype location") + } /* end else */ done: @@ -641,6 +646,10 @@ H5O_attr_open_by_idx(const H5O_loc_t *loc, H5_index_t idx_type, HGOTO_ERROR(H5E_ATTR, H5E_CANTCLOSEOBJ, NULL, "can't close attribute") if(NULL == (ret_value = H5A_copy(NULL, exist_attr))) HGOTO_ERROR(H5E_ATTR, H5E_CANTCOPY, NULL, "can't copy existing attribute") + } else { + /* Mark datatype as being on disk now */ + if(H5T_set_loc(ret_value->shared->dt, loc->file, H5T_LOC_DISK) < 0) + HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, NULL, "invalid datatype location") } /* end if */ } /* end if */ |