mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-23 16:20:57 +08:00
[svn-r19150] Correction from the previous checkin for H5Oattribute.c. Because the attribute structure i
is shared now. The only situation that requires copying the data is when the metadata cache evicts and reloads this attribute. The attribute structure will be different in that situation. Tested on jam.
This commit is contained in:
parent
0357b5ad52
commit
178b80b679
@ -849,9 +849,14 @@ H5O_attr_write_cb(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/,
|
||||
if(NULL == (chk_proxy = H5O_chunk_protect(udata->f, udata->dxpl_id, oh, mesg->chunkno)))
|
||||
HGOTO_ERROR(H5E_ATTR, H5E_CANTPROTECT, H5_ITER_ERROR, "unable to load object header chunk")
|
||||
|
||||
/* No need to allocate data buffer or copy the data because the structure is shared
|
||||
* now. Only do an assertion check, instead. SLU - 2010/7/28 */
|
||||
HDassert(((H5A_t *)mesg->native)->shared == udata->attr->shared);
|
||||
/* Because the attribute structure is shared now. The only situation that requires
|
||||
* copying the data is when the metadata cache evicts and reloads this attribute.
|
||||
* The attribute structure will be different in that situation. SLU-2010/7/29 */
|
||||
if(((H5A_t *)mesg->native)->shared != udata->attr->shared)
|
||||
/* (Needs to occur before updating the shared message, or the hash
|
||||
* value on the old & new messages will be the same) */
|
||||
HDmemcpy(((H5A_t *)mesg->native)->shared->data, udata->attr->shared->data,
|
||||
udata->attr->shared->data_size);
|
||||
|
||||
/* Mark the message as modified */
|
||||
mesg->dirty = TRUE;
|
||||
|
Loading…
Reference in New Issue
Block a user