diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2012-08-20 18:44:14 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2012-08-20 18:44:14 (GMT) |
commit | d8f67a62cc4e0bd52a5a428608d46188dd5b27b2 (patch) | |
tree | 4001900da24308e5bb55934cba2faf140a41ac56 /src/H5HF.c | |
parent | 1560a6ea38d559edb211707d9507db0b8c085635 (diff) | |
download | hdf5-d8f67a62cc4e0bd52a5a428608d46188dd5b27b2.zip hdf5-d8f67a62cc4e0bd52a5a428608d46188dd5b27b2.tar.gz hdf5-d8f67a62cc4e0bd52a5a428608d46188dd5b27b2.tar.bz2 |
[svn-r22700] Description:
Minor refactoring to extract managed object length determination.
This makes the tiny, managed, and huge code work alike.
Tested on:
jam (very minor change, no need for full commit test)
Diffstat (limited to 'src/H5HF.c')
-rw-r--r-- | src/H5HF.c | 14 |
1 files changed, 4 insertions, 10 deletions
@@ -439,14 +439,8 @@ H5HF_get_obj_len(H5HF_t *fh, hid_t dxpl_id, const void *_id, size_t *obj_len_p) /* Check type of object in heap */ if((id_flags & H5HF_ID_TYPE_MASK) == H5HF_ID_TYPE_MAN) { - /* Skip over the flag byte */ - id++; - - /* Skip over object offset */ - id += fh->hdr->heap_off_size; - - /* Retrieve the entry length */ - UINT64DECODE_VAR(id, *obj_len_p, fh->hdr->heap_len_size); + if(H5HF_man_get_obj_len(fh->hdr, id, obj_len_p) < 0) + HGOTO_ERROR(H5E_HEAP, H5E_CANTGET, FAIL, "can't get 'managed' object's length") } /* end if */ else if((id_flags & H5HF_ID_TYPE_MASK) == H5HF_ID_TYPE_HUGE) { if(H5HF_huge_get_obj_len(fh->hdr, dxpl_id, id, obj_len_p) < 0) @@ -457,8 +451,8 @@ H5HF_get_obj_len(H5HF_t *fh, hid_t dxpl_id, const void *_id, size_t *obj_len_p) HGOTO_ERROR(H5E_HEAP, H5E_CANTGET, FAIL, "can't get 'tiny' object's length") } /* end if */ else { -HDfprintf(stderr, "%s: Heap ID type not supported yet!\n", FUNC); -HGOTO_ERROR(H5E_HEAP, H5E_UNSUPPORTED, FAIL, "heap ID type not supported yet") + HDfprintf(stderr, "%s: Heap ID type not supported yet!\n", FUNC); + HGOTO_ERROR(H5E_HEAP, H5E_UNSUPPORTED, FAIL, "heap ID type not supported yet") } /* end else */ done: |