diff options
author | Vailin Choi <vchoi@hdfgroup.org> | 2012-08-14 00:33:19 (GMT) |
---|---|---|
committer | Vailin Choi <vchoi@hdfgroup.org> | 2012-08-14 00:33:19 (GMT) |
commit | 2ab1d8cc0c91d691e7b0778d49d1c596c9a21d16 (patch) | |
tree | 0f0832e62734f1906db3d79a7cb0def6470a3e9f /src/H5Ocopy.c | |
parent | 20d05ae59310dd75f7229fa7cf240a73dd16cf8c (diff) | |
download | hdf5-2ab1d8cc0c91d691e7b0778d49d1c596c9a21d16.zip hdf5-2ab1d8cc0c91d691e7b0778d49d1c596c9a21d16.tar.gz hdf5-2ab1d8cc0c91d691e7b0778d49d1c596c9a21d16.tar.bz2 |
[svn-r22677] Changes needed to make the default free-list mapping from H5FD_FLMAP_SINGLE to H5FD_FLMAP_DICHOTOMY.
Also changed H5O_copy_search_comm_dt_check() to use H5O_obj_class() to get object type instead of H5O_get_info(...TRUE...) saving time in traversing metadata.
Diffstat (limited to 'src/H5Ocopy.c')
-rw-r--r-- | src/H5Ocopy.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/H5Ocopy.c b/src/H5Ocopy.c index bc71948..9dd253d 100644 --- a/src/H5Ocopy.c +++ b/src/H5Ocopy.c @@ -1555,6 +1555,10 @@ done: * Programmer: Neil Fortner * Nov 3 2011 * + * Modifications: + * Vailin Choi; August 2012 + * Use H5O_obj_class to get object type instead of + * H5O_get_info(...TRUE....) saving time in traversing metadata. *------------------------------------------------------------------------- */ static herr_t @@ -1564,8 +1568,8 @@ H5O_copy_search_comm_dt_check(H5O_loc_t *obj_oloc, H5O_copy_search_comm_dt_key_t *key = NULL; /* Skiplist key */ haddr_t *addr = NULL; /* Destination address */ hbool_t obj_inserted = FALSE; /* Object inserted into skip list */ - H5O_info_t oinfo; /* Object info */ H5A_attr_iter_op_t attr_op; /* Attribute iteration operator */ + const H5O_obj_class_t *obj_class = NULL; /* Type of object */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT @@ -1576,13 +1580,13 @@ H5O_copy_search_comm_dt_check(H5O_loc_t *obj_oloc, HDassert(udata->dst_dt_list); HDassert(udata->dst_root_loc); - /* Get the object's info */ - if(H5O_get_info(obj_oloc, udata->dxpl_id, TRUE, &oinfo) < 0) - HGOTO_ERROR(H5E_OHDR, H5E_CANTGET, FAIL, "unable to get object info") + /* Get pointer to object class for this object */ + if((obj_class = H5O_obj_class(obj_oloc, udata->dxpl_id)) == NULL) + HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, FAIL, "unable to determine object type") /* Check if the object is a datatype, a dataset using a committed * datatype, or contains an attribute using a committed datatype */ - if(oinfo.type == H5O_TYPE_NAMED_DATATYPE) { + if(obj_class->type == H5O_TYPE_NAMED_DATATYPE) { /* Allocate key */ if(NULL == (key = H5FL_MALLOC(H5O_copy_search_comm_dt_key_t))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") @@ -1607,7 +1611,7 @@ H5O_copy_search_comm_dt_check(H5O_loc_t *obj_oloc, obj_inserted = TRUE; } /* end if */ } /* end if */ - else if(oinfo.type == H5O_TYPE_DATASET) { + else if(obj_class->type == H5O_TYPE_DATASET) { /* Allocate key */ if(NULL == (key = H5FL_MALLOC(H5O_copy_search_comm_dt_key_t))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") |