diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2006-11-25 04:10:32 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2006-11-25 04:10:32 (GMT) |
commit | 5c1fedcb9003ab614db83a15723bb0fc0389e3c7 (patch) | |
tree | ec8d663d5767b75a432d3d91c5cbb0a84db55530 /src/H5Gnode.c | |
parent | 2f694358c4c7ae4fa79057ae7d87f95859fbea73 (diff) | |
download | hdf5-5c1fedcb9003ab614db83a15723bb0fc0389e3c7.zip hdf5-5c1fedcb9003ab614db83a15723bb0fc0389e3c7.tar.gz hdf5-5c1fedcb9003ab614db83a15723bb0fc0389e3c7.tar.bz2 |
[svn-r12973] Description:
Finish removing library's internal code that uses H5G_get_objinfo() and
retarget it at either getting the link information or the object information,
as appropriate. (Still need to add user-level tests for H5Oget_info(), but
since several internal components of the library depend on the internal version,
it appears to be working correctly).
Tested on:
FreeBSD/32 4.11 (sleipnir)
Linux/322.4 (heping)
Linux/64 2.4 (mir)
AIX/32 5.? (copper)
Mac OS X/32 10.4.8 (amazon)
Diffstat (limited to 'src/H5Gnode.c')
-rw-r--r-- | src/H5Gnode.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/H5Gnode.c b/src/H5Gnode.c index c2fbad4..714661c 100644 --- a/src/H5Gnode.c +++ b/src/H5Gnode.c @@ -1829,7 +1829,7 @@ H5G_node_copy(H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t addr, /* expand soft link */ if(H5G_CACHED_SLINK == src_ent->type && cpy_info->expand_soft_link) { - H5G_stat_t statbuf; /* Information about object pointed to by soft link */ + H5O_info_t oinfo; /* Information about object pointed to by soft link */ H5G_loc_t grp_loc; /* Group location holding soft link */ H5G_name_t grp_path; /* Path for group holding soft link */ char *link_name; /* Pointer to value of soft link */ @@ -1846,15 +1846,8 @@ H5G_node_copy(H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t addr, link_name = (char *)H5HL_offset_into(f, heap, tmp_src_ent.cache.slink.lval_offset); /* Check if the object pointed by the soft link exists in the source file */ - /* (It would be more efficient to make a specialized traversal callback, - * but this is good enough for now... -QAK) - */ - if(H5G_get_objinfo(&grp_loc, link_name, TRUE, &statbuf, dxpl_id) >= 0) { -#if H5_SIZEOF_UINT64_T > H5_SIZEOF_LONG - tmp_src_ent.header = (((haddr_t)statbuf.objno[1]) << (8 * sizeof(long))) | (haddr_t)statbuf.objno[0]; -#else - tmp_src_ent.header = statbuf.objno[0]; -#endif + if(H5G_loc_info(&grp_loc, link_name, &oinfo, H5P_DEFAULT, dxpl_id) >= 0) { + tmp_src_ent.header = oinfo.addr; src_ent = &tmp_src_ent; } /* end if */ else |