summaryrefslogtreecommitdiffstats
path: root/src/H5Ocopy.c
diff options
context:
space:
mode:
authorPeter Cao <xcao@hdfgroup.org>2007-05-30 21:35:57 (GMT)
committerPeter Cao <xcao@hdfgroup.org>2007-05-30 21:35:57 (GMT)
commit461b896779cb585cf47236cdcfc271a98d3ca080 (patch)
tree9ad39b91c1b22826d0281ea8d916abaac5f03b5f /src/H5Ocopy.c
parent7afc8fc6ebaaedf4d077b8ca1558e6bac8afc373 (diff)
downloadhdf5-461b896779cb585cf47236cdcfc271a98d3ca080.zip
hdf5-461b896779cb585cf47236cdcfc271a98d3ca080.tar.gz
hdf5-461b896779cb585cf47236cdcfc271a98d3ca080.tar.bz2
[svn-r13821]
Fixed a bug at copying shared reg_ref attribute. The ref values of an attribute was not writen in file. The post_copy_file() at H5Oattr.c only updates the value in memory. To fix the problem, we added H5O_shared_post_copy_file(), which delete the attribute in file (with the incorrect value) and create an new attribute with the correct values. I added the following functions: H5Oshared.c:H5O_shared_post_copy_file(H5F_t *f, hid_t dxpl_id, H5O_t *oh, void *mesg); H5Oshared.h: H5O_SHARED_POST_COPY_FILE and modified the following files to include shared_post_copy_file() H5Oattr.c H5Odtype.c H5Ofill.c H5Opline.c H5Osdspace.c
Diffstat (limited to 'src/H5Ocopy.c')
-rw-r--r--src/H5Ocopy.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/H5Ocopy.c b/src/H5Ocopy.c
index ebb1303..36d7485 100644
--- a/src/H5Ocopy.c
+++ b/src/H5Ocopy.c
@@ -699,6 +699,9 @@ H5O_copy_header_real(const H5O_loc_t *oloc_src, H5O_loc_t *oloc_dst /*out */,
HDassert(mesg_dst->type == mesg_src->type);
HDassert(mesg_dst->native);
+ /* the object header is needed in the post copy for shared message */
+ cpy_info->oh_dst = &oh_dst;
+
/* Perform "post copy" operation on message */
if((copy_type->post_copy_file)(oloc_src, mesg_src->native, oloc_dst,
mesg_dst->native, dxpl_id, cpy_info) < 0)