summaryrefslogtreecommitdiffstats
path: root/src/H5Gnode.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2005-08-10 20:28:32 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2005-08-10 20:28:32 (GMT)
commit0e1b41d0fd1521784128e8637b5afa8371d2779d (patch)
tree8c17410110f52e6c5b77e49d41a8c1af00a8e3da /src/H5Gnode.c
parenta8fbde5d18ea0b8e0567649571e527e9f04ab5c7 (diff)
downloadhdf5-0e1b41d0fd1521784128e8637b5afa8371d2779d.zip
hdf5-0e1b41d0fd1521784128e8637b5afa8371d2779d.tar.gz
hdf5-0e1b41d0fd1521784128e8637b5afa8371d2779d.tar.bz2
[svn-r11229] Purpose:
Big fix Description: A group opened by dereferencing a object reference would not work for H5Giterate(), due to the local heap & B-tree information not being cached. Solution: Get the local heap & B-tree info & point to that structure instead of the group entry for the group. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
Diffstat (limited to 'src/H5Gnode.c')
-rw-r--r--src/H5Gnode.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/H5Gnode.c b/src/H5Gnode.c
index dfa607e..4c08b9c 100644
--- a/src/H5Gnode.c
+++ b/src/H5Gnode.c
@@ -1533,7 +1533,7 @@ H5G_node_iterate (H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t a
if (bt_udata->skip>0) {
--bt_udata->skip;
} else {
- if (NULL == (heap = H5HL_protect(f, dxpl_id, bt_udata->ent->cache.stab.heap_addr)))
+ if (NULL == (heap = H5HL_protect(f, dxpl_id, bt_udata->stab->heap_addr)))
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, H5B_ITER_ERROR, "unable to protect symbol name");
name = H5HL_offset_into(f, heap, name_off[i]);
@@ -1548,7 +1548,7 @@ H5G_node_iterate (H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t a
}
HDstrcpy (s, name);
- if (H5HL_unprotect(f, dxpl_id, heap, bt_udata->ent->cache.stab.heap_addr, H5AC__NO_FLAGS_SET) < 0)
+ if (H5HL_unprotect(f, dxpl_id, heap, bt_udata->stab->heap_addr, H5AC__NO_FLAGS_SET) < 0)
HGOTO_ERROR(H5E_SYM, H5E_PROTECT, H5B_ITER_ERROR, "unable to unprotect symbol name");
heap=NULL; name=NULL;
@@ -1565,7 +1565,7 @@ H5G_node_iterate (H5F_t *f, hid_t dxpl_id, const void UNUSED *_lt_key, haddr_t a
HERROR (H5E_SYM, H5E_CANTNEXT, "iteration operator failed");
done:
- if (heap && H5HL_unprotect(f, dxpl_id, heap, bt_udata->ent->cache.stab.heap_addr, H5AC__NO_FLAGS_SET) < 0)
+ if (heap && H5HL_unprotect(f, dxpl_id, heap, bt_udata->stab->heap_addr, H5AC__NO_FLAGS_SET) < 0)
HDONE_ERROR(H5E_SYM, H5E_PROTECT, H5B_ITER_ERROR, "unable to unprotect symbol name");
if (sn && H5AC_unprotect(f, dxpl_id, H5AC_SNODE, addr, sn, H5AC__NO_FLAGS_SET) != SUCCEED)