diff options
-rw-r--r-- | src/H5A.c | 16 | ||||
-rw-r--r-- | src/H5D.c | 7 | ||||
-rw-r--r-- | src/H5Oattr.c | 252 | ||||
-rw-r--r-- | src/H5Odtype.c | 10 | ||||
-rw-r--r-- | src/H5Ofill.c | 334 | ||||
-rw-r--r-- | src/H5Oginfo.c | 20 | ||||
-rw-r--r-- | src/H5Olayout.c | 100 | ||||
-rw-r--r-- | src/H5Olinfo.c | 20 | ||||
-rw-r--r-- | src/H5Osdspace.c | 6 | ||||
-rw-r--r-- | test/fillval.c | 117 | ||||
-rw-r--r-- | test/links.c | 1 | ||||
-rw-r--r-- | test/tattr.c | 143 | ||||
-rw-r--r-- | test/unlink.c | 3 |
13 files changed, 540 insertions, 489 deletions
@@ -268,18 +268,16 @@ H5A_create(const H5G_loc_t *loc, const char *name, const H5T_t *type, /* If the creation property list is H5P_DEFAULT, use the default character encoding */ if(acpl_id == H5P_DEFAULT) - { - attr->encoding = H5P_CHAR_ENCODING_DEF; - } + attr->encoding = H5P_CHAR_ENCODING_DEF; else { - /* Get a local copy of the attribute creation property list */ - if (NULL == (ac_plist = H5I_object(acpl_id))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list") + /* Get a local copy of the attribute creation property list */ + if (NULL == (ac_plist = H5I_object(acpl_id))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a property list") - if(H5P_get(ac_plist, H5P_CHAR_ENCODING_NAME, &(attr->encoding)) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get character encoding flag") - } + if(H5P_get(ac_plist, H5P_CHAR_ENCODING_NAME, &(attr->encoding)) < 0) + HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get character encoding flag") + } /* end else */ /* Copy the attribute name */ attr->name = H5MM_xstrdup(name); @@ -2034,6 +2034,7 @@ H5D_update_entry_info(H5F_t *file, hid_t dxpl_id, H5D_t *dset, H5P_genplist_t *p H5S_t *space; /* Dataset's dataspace */ H5D_alloc_time_t alloc_time;/* Dataset's allocation time */ H5O_efl_t *efl; /* Dataset's external file list */ + hbool_t use_latest_format; /* Flag indicating the newest file format should be used */ /* fill value variables */ H5D_fill_time_t fill_time; @@ -2061,6 +2062,9 @@ H5D_update_entry_info(H5F_t *file, hid_t dxpl_id, H5D_t *dset, H5P_genplist_t *p alloc_time = dset->shared->alloc_time; efl = &dset->shared->efl; + /* Get the file's 'use the latest version of the format' flag */ + use_latest_format = H5F_USE_LATEST_FORMAT(file); + /* Add the dataset's raw data size to the size of the header, if the raw data will be stored as compact */ if(layout->type == H5D_COMPACT) ohdr_size += layout->u.compact.size; @@ -2138,7 +2142,8 @@ H5D_update_entry_info(H5F_t *file, hid_t dxpl_id, H5D_t *dset, H5P_genplist_t *p HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to update fill value header message") /* If there is valid information for the old fill value struct, update it */ - if (fill.buf) { + /* (only if we aren't trying to write the latest version of the file format) */ + if(fill.buf && !use_latest_format) { /* Clear any previous values */ if(H5O_reset(H5O_FILL_ID, fill_prop)<0) HGOTO_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "can't release fill info") diff --git a/src/H5Oattr.c b/src/H5Oattr.c index 1ab461d..24e4769 100644 --- a/src/H5Oattr.c +++ b/src/H5Oattr.c @@ -74,6 +74,10 @@ const H5O_msg_class_t H5O_MSG_ATTR[1] = {{ /* Add support for different character encodings of attribute names */ #define H5O_ATTR_VERSION_3 3 +/* The latest version of the format. Look through the 'encode' + * and 'size' callback for places to change when updating this. */ +#define H5O_ATTR_VERSION_LATEST H5O_ATTR_VERSION_3 + /* Flags for attribute flag encoding */ #define H5O_ATTR_FLAG_TYPE_SHARED 0x01 @@ -83,6 +87,7 @@ H5FL_EXTERN(H5S_t); /* Declare external the free list for H5S_extent_t's */ H5FL_EXTERN(H5S_extent_t); + /*-------------------------------------------------------------------------- NAME H5O_attr_decode @@ -122,25 +127,25 @@ H5O_attr_decode(H5F_t *f, hid_t dxpl_id, const uint8_t *p) H5S_extent_t *extent; /*extent dimensionality information */ size_t name_len; /*attribute name length */ int version; /*message version number*/ - unsigned flags=0; /* Attribute flags */ + unsigned flags = 0; /* Attribute flags */ H5A_t *ret_value; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_attr_decode); + FUNC_ENTER_NOAPI_NOINIT(H5O_attr_decode) /* check args */ - assert(f); - assert(p); + HDassert(f); + HDassert(p); - if (NULL==(attr = H5FL_CALLOC(H5A_t))) + if(NULL == (attr = H5FL_CALLOC(H5A_t))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") /* Version number */ version = *p++; - if (version<H5O_ATTR_VERSION_1 || version>H5O_ATTR_VERSION_3) + if(version < H5O_ATTR_VERSION_1 || version > H5O_ATTR_VERSION_3) HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "bad version number for attribute message") /* Get the flags byte if we have a later version of the attribute */ - if(version>H5O_ATTR_VERSION_1) + if(version > H5O_ATTR_VERSION_1) flags = *p++; else p++; /* Byte is unused when version<2 */ @@ -158,10 +163,10 @@ H5O_attr_decode(H5F_t *f, hid_t dxpl_id, const uint8_t *p) * as well as some reserved bytes. */ if(version >= H5O_ATTR_VERSION_3) - attr->encoding = *p++; + attr->encoding = *p++; /* Decode and store the name */ - if (NULL==(attr->name=H5MM_strdup((const char *)p))) + if(NULL == (attr->name = H5MM_strdup((const char *)p))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") if(version < H5O_ATTR_VERSION_2) p += H5O_ALIGN(name_len); /* advance the memory pointer */ @@ -169,22 +174,22 @@ H5O_attr_decode(H5F_t *f, hid_t dxpl_id, const uint8_t *p) p += name_len; /* advance the memory pointer */ /* decode the attribute datatype */ - if (flags & H5O_ATTR_FLAG_TYPE_SHARED) { + if(flags & H5O_ATTR_FLAG_TYPE_SHARED) { H5O_shared_t *shared; /* Shared information */ /* Get the shared information */ - if (NULL == (shared = (H5O_MSG_SHARED->decode) (f, dxpl_id, p))) + if (NULL == (shared = (H5O_MSG_SHARED->decode)(f, dxpl_id, p))) HGOTO_ERROR(H5E_OHDR, H5E_CANTDECODE, NULL, "unable to decode shared message") /* Get the actual datatype information */ - if((attr->dt= H5O_shared_read(f, dxpl_id, shared, H5O_MSG_DTYPE, NULL))==NULL) + if((attr->dt = H5O_shared_read(f, dxpl_id, shared, H5O_MSG_DTYPE, NULL)) == NULL) HGOTO_ERROR(H5E_ATTR, H5E_CANTDECODE, NULL, "can't decode attribute datatype") /* Free the shared information */ H5O_free_real(H5O_MSG_SHARED, shared); } /* end if */ else { - if((attr->dt=(H5O_MSG_DTYPE->decode)(f,dxpl_id,p))==NULL) + if((attr->dt = (H5O_MSG_DTYPE->decode)(f, dxpl_id, p)) == NULL) HGOTO_ERROR(H5E_ATTR, H5E_CANTDECODE, NULL, "can't decode attribute datatype") } /* end else */ if(version < H5O_ATTR_VERSION_2) @@ -193,20 +198,20 @@ H5O_attr_decode(H5F_t *f, hid_t dxpl_id, const uint8_t *p) p += attr->dt_size; /* decode the attribute dataspace */ - if (NULL==(attr->ds = H5FL_CALLOC(H5S_t))) + if(NULL == (attr->ds = H5FL_CALLOC(H5S_t))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") - if((extent=(H5O_MSG_SDSPACE->decode)(f,dxpl_id,p))==NULL) + if((extent = (H5O_MSG_SDSPACE->decode)(f, dxpl_id, p)) == NULL) HGOTO_ERROR(H5E_ATTR, H5E_CANTDECODE, NULL, "can't decode attribute dataspace") /* Copy the extent information */ - HDmemcpy(&(attr->ds->extent),extent, sizeof(H5S_extent_t)); + HDmemcpy(&(attr->ds->extent), extent, sizeof(H5S_extent_t)); /* Release temporary extent information */ - H5FL_FREE(H5S_extent_t,extent); + H5FL_FREE(H5S_extent_t, extent); /* Default to entire dataspace being selected */ - if(H5S_select_all(attr->ds,0)<0) + if(H5S_select_all(attr->ds, 0) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSET, NULL, "unable to set all selection") if(version < H5O_ATTR_VERSION_2) @@ -215,24 +220,24 @@ H5O_attr_decode(H5F_t *f, hid_t dxpl_id, const uint8_t *p) p += attr->ds_size; /* Compute the size of the data */ - H5_ASSIGN_OVERFLOW(attr->data_size,H5S_GET_EXTENT_NPOINTS(attr->ds)*H5T_get_size(attr->dt),hsize_t,size_t); + H5_ASSIGN_OVERFLOW(attr->data_size, H5S_GET_EXTENT_NPOINTS(attr->ds) * H5T_get_size(attr->dt), hsize_t, size_t); /* Go get the data */ if(attr->data_size) { - if (NULL==(attr->data = H5FL_BLK_MALLOC(attr_buf, attr->data_size))) + if(NULL == (attr->data = H5FL_BLK_MALLOC(attr_buf, attr->data_size))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") - HDmemcpy(attr->data,p,attr->data_size); - } + HDmemcpy(attr->data, p, attr->data_size); + } /* end if */ /* Indicate that the fill values aren't to be written out */ - attr->initialized=1; + attr->initialized = 1; /* Set return value */ - ret_value=attr; + ret_value = attr; done: FUNC_LEAVE_NOAPI(ret_value); -} +} /* end H5O_attr_decode() */ /*-------------------------------------------------------------------------- @@ -273,14 +278,18 @@ H5O_attr_encode(H5F_t *f, uint8_t *p, const void *mesg) size_t name_len; /* Attribute name length */ unsigned version; /* Attribute version */ hbool_t type_shared; /* Flag to indicate that a shared datatype is used for this attribute */ - herr_t ret_value=SUCCEED; /* Return value */ + hbool_t use_latest_format; /* Flag indicating the newest file format should be used */ + herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_attr_encode); + FUNC_ENTER_NOAPI_NOINIT(H5O_attr_encode) /* check args */ - assert(f); - assert(p); - assert(attr); + HDassert(f); + HDassert(p); + HDassert(attr); + + /* Get the file's 'use the latest version of the format' flag */ + use_latest_format = H5F_USE_LATEST_FORMAT(f); /* Check whether datatype is shared */ if(H5T_committed(attr->dt)) @@ -289,18 +298,20 @@ H5O_attr_encode(H5F_t *f, uint8_t *p, const void *mesg) type_shared = FALSE; /* Check which version to write out */ - if(attr->encoding != H5T_CSET_ASCII) - version = H5O_ATTR_VERSION_3; /* Write version which includes the character encoding */ + if(use_latest_format) + version = H5O_ATTR_VERSION_LATEST; /* Write out latest version of format */ + else if(attr->encoding != H5T_CSET_ASCII) + version = H5O_ATTR_VERSION_3; /* Write version which includes the character encoding */ else if(type_shared) - version = H5O_ATTR_VERSION_2; /* Write out version with shared datatype */ + version = H5O_ATTR_VERSION_2; /* Write out version with shared datatype */ else - version = H5O_ATTR_VERSION_1; /* Write out basic version */ + version = H5O_ATTR_VERSION_1; /* Write out basic version */ /* Encode Version */ *p++ = version; /* Set attribute flags if version >1 */ - if(version>H5O_ATTR_VERSION_1) + if(version > H5O_ATTR_VERSION_1) *p++ = (type_shared ? H5O_ATTR_FLAG_TYPE_SHARED : 0 ); /* Set flags for attribute */ else *p++ = 0; /* Reserved, for version <2 */ @@ -310,7 +321,7 @@ H5O_attr_encode(H5F_t *f, uint8_t *p, const void *mesg) * encoded lengths are exact but we pad each part except the data to be a * multiple of eight bytes (in the first version). */ - name_len = HDstrlen(attr->name)+1; + name_len = HDstrlen(attr->name) + 1; UINT16ENCODE(p, name_len); UINT16ENCODE(p, attr->dt_size); UINT16ENCODE(p, attr->ds_size); @@ -319,15 +330,15 @@ H5O_attr_encode(H5F_t *f, uint8_t *p, const void *mesg) * Encode the character encoding used for the attribute's name * Also add several "reserved" fields to pad to 16 bytes. */ - if(version>=H5O_ATTR_VERSION_3) - *p++=attr->encoding; + if(version >= H5O_ATTR_VERSION_3) + *p++ = attr->encoding; /* * Write the name including null terminator padded to the correct number * of bytes. */ HDmemcpy(p, attr->name, name_len); - HDmemset(p+name_len, 0, H5O_ALIGN(name_len)-name_len); + HDmemset(p + name_len, 0, H5O_ALIGN(name_len) - name_len); if(version < H5O_ATTR_VERSION_2) p += H5O_ALIGN(name_len); else @@ -338,33 +349,33 @@ H5O_attr_encode(H5F_t *f, uint8_t *p, const void *mesg) H5O_shared_t sh_mesg; /* Reset shared message information */ - HDmemset(&sh_mesg,0,sizeof(H5O_shared_t)); + HDmemset(&sh_mesg, 0, sizeof(H5O_shared_t)); /* Get shared message information from datatype */ - if ((H5O_MSG_DTYPE->get_share)(f, attr->dt, &sh_mesg/*out*/)<0) + if((H5O_MSG_DTYPE->get_share)(f, attr->dt, &sh_mesg/*out*/) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTENCODE, FAIL, "can't encode shared attribute datatype") /* Encode shared message information for datatype */ - if((H5O_MSG_SHARED->encode)(f,p,&sh_mesg)<0) + if((H5O_MSG_SHARED->encode)(f, p, &sh_mesg) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTENCODE, FAIL, "can't encode shared attribute datatype") } /* end if */ else { /* Encode datatype information */ - if((H5O_MSG_DTYPE->encode)(f,p,attr->dt)<0) + if((H5O_MSG_DTYPE->encode)(f, p, attr->dt) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTENCODE, FAIL, "can't encode attribute datatype") } /* end else */ if(version < H5O_ATTR_VERSION_2) { - HDmemset(p+attr->dt_size, 0, H5O_ALIGN(attr->dt_size)-attr->dt_size); + HDmemset(p + attr->dt_size, 0, H5O_ALIGN(attr->dt_size) - attr->dt_size); p += H5O_ALIGN(attr->dt_size); } /* end if */ else p += attr->dt_size; /* encode the attribute dataspace */ - if((H5O_MSG_SDSPACE->encode)(f,p,&(attr->ds->extent))<0) + if((H5O_MSG_SDSPACE->encode)(f, p, &(attr->ds->extent)) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTENCODE, FAIL, "can't encode attribute dataspace") if(version < H5O_ATTR_VERSION_2) { - HDmemset(p+attr->ds_size, 0, H5O_ALIGN(attr->ds_size)-attr->ds_size); + HDmemset(p + attr->ds_size, 0, H5O_ALIGN(attr->ds_size) - attr->ds_size); p += H5O_ALIGN(attr->ds_size); } /* end if */ else @@ -372,13 +383,13 @@ H5O_attr_encode(H5F_t *f, uint8_t *p, const void *mesg) /* Store attribute data */ if(attr->data) - HDmemcpy(p,attr->data,attr->data_size); + HDmemcpy(p, attr->data, attr->data_size); else - HDmemset(p,0,attr->data_size); + HDmemset(p, 0, attr->data_size); done: FUNC_LEAVE_NOAPI(ret_value); -} +} /* end H5O_attr_encode() */ /*-------------------------------------------------------------------------- @@ -402,18 +413,18 @@ H5O_attr_copy(const void *_src, void *_dst, unsigned update_flags) const H5A_t *src = (const H5A_t *) _src; void *ret_value; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_attr_copy); + FUNC_ENTER_NOAPI_NOINIT(H5O_attr_copy) /* check args */ - assert(src); + HDassert(src); /* copy */ - if (NULL == (ret_value = H5A_copy(_dst,src,update_flags))) + if(NULL == (ret_value = H5A_copy(_dst, src, update_flags))) HGOTO_ERROR(H5E_ATTR, H5E_CANTINIT, NULL, "can't copy attribute") done: - FUNC_LEAVE_NOAPI(ret_value); -} + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5O_attr_copy() */ /*-------------------------------------------------------------------------- @@ -437,19 +448,23 @@ done: * Added padding between message parts for alignment. --------------------------------------------------------------------------*/ static size_t -H5O_attr_size(const H5F_t UNUSED *f, const void *_mesg) +H5O_attr_size(const H5F_t *f, const void *_mesg) { const H5A_t *attr = (const H5A_t *)_mesg; size_t name_len; unsigned version; /* Attribute version */ hbool_t type_shared; /* Flag to indicate that a shared datatype is used for this attribute */ + hbool_t use_latest_format; /* Flag indicating the newest file format should be used */ size_t ret_value = 0; - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_attr_size); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_attr_size) + + HDassert(attr); - assert(attr); + name_len = HDstrlen(attr->name) + 1; - name_len = HDstrlen(attr->name)+1; + /* Get the file's 'use the latest version of the format' flag */ + use_latest_format = H5F_USE_LATEST_FORMAT(f); /* Check whether datatype is shared */ if(H5T_committed(attr->dt)) @@ -458,47 +473,42 @@ H5O_attr_size(const H5F_t UNUSED *f, const void *_mesg) type_shared = FALSE; /* Check which version to write out */ - if(attr->encoding != H5T_CSET_ASCII) - version = H5O_ATTR_VERSION_3; /* Write version which includes the character encoding */ + if(use_latest_format) + version = H5O_ATTR_VERSION_LATEST; /* Write out latest version of format */ + else if(attr->encoding != H5T_CSET_ASCII) + version = H5O_ATTR_VERSION_3; /* Write version which includes the character encoding */ else if(type_shared) - version = H5O_ATTR_VERSION_2; /* Write out version with shared datatype */ + version = H5O_ATTR_VERSION_2; /* Write out version with shared datatype */ else - version = H5O_ATTR_VERSION_1; /* Write out basic version */ + version = H5O_ATTR_VERSION_1; /* Write out basic version */ + + /* Common size information */ + ret_value = 1 + /*version */ + 1 + /*reserved */ + 2 + /*name size inc. null */ + 2 + /*type size */ + 2; /*space size */ + /* Version-specific size information */ if(version == H5O_ATTR_VERSION_1) - ret_value = 1 + /*version */ - 1 + /*reserved */ - 2 + /*name size inc. null */ - 2 + /*type size */ - 2 + /*space size */ - H5O_ALIGN(name_len) + /*attribute name */ + ret_value += H5O_ALIGN(name_len) + /*attribute name */ H5O_ALIGN(attr->dt_size) + /*data type */ H5O_ALIGN(attr->ds_size) + /*data space */ attr->data_size; /*the data itself */ else if(version == H5O_ATTR_VERSION_2) - ret_value = 1 + /*version */ - 1 + /*flags */ - 2 + /*name size inc. null */ - 2 + /*type size */ - 2 + /*space size */ - name_len + /*attribute name */ + ret_value += name_len + /*attribute name */ attr->dt_size + /*data type */ attr->ds_size + /*data space */ attr->data_size; /*the data itself */ else if(version == H5O_ATTR_VERSION_3) - ret_value = 1 + /*version */ - 1 + /*flags */ - 2 + /*name size inc. null */ - 2 + /*type size */ - 2 + /*space size */ - 1 + /*character encoding */ + ret_value += 1 + /*character encoding */ name_len + /*attribute name */ attr->dt_size + /*data type */ attr->ds_size + /*data space */ attr->data_size; /*the data itself */ - FUNC_LEAVE_NOAPI(ret_value); -} + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5O_attr_size() */ /*------------------------------------------------------------------------- @@ -519,16 +529,15 @@ H5O_attr_size(const H5F_t UNUSED *f, const void *_mesg) static herr_t H5O_attr_reset(void *_mesg) { - H5A_t *attr = (H5A_t *) _mesg; - herr_t ret_value=SUCCEED; /* Return value */ + H5A_t *attr = (H5A_t *)_mesg; - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_attr_reset); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_attr_reset) - if (attr) + if(attr) H5A_free(attr); - FUNC_LEAVE_NOAPI(ret_value); -} + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5O_attr_reset() */ /*------------------------------------------------------------------------- @@ -546,15 +555,15 @@ H5O_attr_reset(void *_mesg) *------------------------------------------------------------------------- */ static herr_t -H5O_attr_free (void *mesg) +H5O_attr_free(void *mesg) { - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_attr_free); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_attr_free) - assert (mesg); + HDassert(mesg); - H5FL_FREE(H5A_t,mesg); + H5FL_FREE(H5A_t, mesg); - FUNC_LEAVE_NOAPI(SUCCEED); + FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5O_attr_free() */ @@ -576,24 +585,24 @@ static herr_t H5O_attr_delete(H5F_t UNUSED *f, hid_t dxpl_id, const void *_mesg, hbool_t adj_link) { const H5A_t *attr = (const H5A_t *) _mesg; - herr_t ret_value=SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_attr_delete); + FUNC_ENTER_NOAPI_NOINIT(H5O_attr_delete) /* check args */ - assert(f); - assert(attr); + HDassert(f); + HDassert(attr); /* Check whether datatype is shared */ if(H5T_committed(attr->dt)) { /* Decrement the reference count on the shared datatype, if requested */ if(adj_link) - if(H5T_link(attr->dt, -1, dxpl_id)<0) + if(H5T_link(attr->dt, -1, dxpl_id) < 0) HGOTO_ERROR(H5E_OHDR, H5E_LINKCOUNT, FAIL, "unable to adjust shared datatype link count") } /* end if */ done: - FUNC_LEAVE_NOAPI(ret_value); + FUNC_LEAVE_NOAPI(ret_value) } /* end H5O_attr_delete() */ @@ -616,23 +625,23 @@ static herr_t H5O_attr_link(H5F_t UNUSED *f, hid_t dxpl_id, const void *_mesg) { const H5A_t *attr = (const H5A_t *) _mesg; - herr_t ret_value=SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_attr_link); + FUNC_ENTER_NOAPI_NOINIT(H5O_attr_link) /* check args */ - assert(f); - assert(attr); + HDassert(f); + HDassert(attr); /* Check whether datatype is shared */ if(H5T_committed(attr->dt)) { /* Increment the reference count on the shared datatype */ - if(H5T_link(attr->dt,1,dxpl_id)<0) + if(H5T_link(attr->dt,1,dxpl_id) < 0) HGOTO_ERROR(H5E_OHDR, H5E_LINKCOUNT, FAIL, "unable to adjust shared datatype link count") } /* end if */ done: - FUNC_LEAVE_NOAPI(ret_value); + FUNC_LEAVE_NOAPI(ret_value) } /* end H5O_attr_link() */ @@ -964,15 +973,15 @@ H5O_attr_debug(H5F_t *f, hid_t dxpl_id, const void *_mesg, FILE * stream, int in H5O_shared_t sh_mesg; /* Shared message information */ void *dt_mesg; /* Pointer to datatype message to dump */ herr_t (*debug)(H5F_t*, hid_t, const void*, FILE*, int, int)=NULL; - herr_t ret_value=SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_attr_debug); + FUNC_ENTER_NOAPI_NOINIT(H5O_attr_debug) /* check args */ - assert(f); - assert(stream); - assert(indent >= 0); - assert(fwidth >= 0); + HDassert(f); + HDassert(stream); + HDassert(indent >= 0); + HDassert(fwidth >= 0); fprintf(stream, "%*s%-*s \"%s\"\n", indent, "", fwidth, "Name:", @@ -997,18 +1006,18 @@ H5O_attr_debug(H5F_t *f, hid_t dxpl_id, const void *_mesg, FILE * stream, int in ); if(H5T_committed(mesg->dt)) { /* Reset shared message information */ - HDmemset(&sh_mesg,0,sizeof(H5O_shared_t)); + HDmemset(&sh_mesg, 0, sizeof(H5O_shared_t)); /* Get shared message information from datatype */ - if ((H5O_MSG_DTYPE->get_share)(f, mesg->dt, &sh_mesg/*out*/)<0) + if((H5O_MSG_DTYPE->get_share)(f, mesg->dt, &sh_mesg/*out*/) < 0) HGOTO_ERROR(H5E_ATTR, H5E_CANTENCODE, FAIL, "can't retrieve shared message information") - debug=H5O_MSG_SHARED->debug; - dt_mesg=&sh_mesg; + debug = H5O_MSG_SHARED->debug; + dt_mesg = &sh_mesg; } /* end if */ else { - debug=H5O_MSG_DTYPE->debug; - dt_mesg=mesg->dt; + debug = H5O_MSG_DTYPE->debug; + dt_mesg = mesg->dt; } /* end else */ if(debug) (debug)(f, dxpl_id, dt_mesg, stream, indent+3, MAX(0, fwidth-3)); @@ -1016,11 +1025,12 @@ H5O_attr_debug(H5F_t *f, hid_t dxpl_id, const void *_mesg, FILE * stream, int in fprintf(stream, "%*s<No info for this message>\n", indent + 6, ""); fprintf(stream, "%*sData space...\n", indent, ""); - fprintf(stream, "%*s%-*s %lu\n", indent+3, "", MAX(0,fwidth-3), + fprintf(stream, "%*s%-*s %lu\n", indent+3, "", MAX(0, fwidth - 3), "Size:", (unsigned long)(mesg->ds_size)); - H5S_debug(f, dxpl_id, mesg->ds, stream, indent+3, MAX(0, fwidth-3)); + H5S_debug(f, dxpl_id, mesg->ds, stream, indent+3, MAX(0, fwidth - 3)); done: - FUNC_LEAVE_NOAPI(ret_value); -} + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5O_attr_debug() */ + diff --git a/src/H5Odtype.c b/src/H5Odtype.c index 0a8671b..f768689 100644 --- a/src/H5Odtype.c +++ b/src/H5Odtype.c @@ -121,13 +121,15 @@ H5O_dtype_decode_helper(H5F_t *f, const uint8_t **pp, H5T_t *dt) HDassert(pp && *pp); HDassert(dt && dt->shared); - /* decode */ + /* Version, class & flags */ UINT32DECODE(*pp, flags); version = (flags>>4) & 0x0f; if(version < H5O_DTYPE_VERSION_1 || version > H5O_DTYPE_VERSION_3) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTLOAD, FAIL, "bad version number for datatype message") dt->shared->type = (H5T_class_t)(flags & 0x0f); flags >>= 8; + + /* Size */ UINT32DECODE(*pp, dt->shared->size); switch(dt->shared->type) { @@ -172,7 +174,7 @@ H5O_dtype_decode_helper(H5F_t *f, const uint8_t **pp, H5T_t *dt) * Floating-point types... */ dt->shared->u.atomic.order = (flags & 0x1) ? H5T_ORDER_BE : H5T_ORDER_LE; - if(version == H5O_DTYPE_VERSION_3) { + if(version >= H5O_DTYPE_VERSION_3) { /* Unsupported byte order*/ if((flags & 0x40) && !(flags & 0x1)) HGOTO_ERROR(H5E_DATATYPE, H5E_UNSUPPORTED, FAIL, "bad byte order for datatype message") @@ -510,7 +512,7 @@ H5O_dtype_encode_helper(const H5F_t *f, uint8_t **pp, const H5T_t *dt) unsigned i; size_t n, z; uint8_t version; /* version number */ - hbool_t use_latest_format; /* Flag indicating the new group format should be used */ + hbool_t use_latest_format; /* Flag indicating the newest file format should be used */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT(H5O_dtype_encode_helper) @@ -1073,7 +1075,7 @@ static size_t H5O_dtype_size(const H5F_t *f, const void *_mesg) { const H5T_t *dt = (const H5T_t *)_mesg; - hbool_t use_latest_format; /* Flag indicating the new group format should be used */ + hbool_t use_latest_format; /* Flag indicating the newest file format should be used */ unsigned u; /* Local index variable */ size_t ret_value; diff --git a/src/H5Ofill.c b/src/H5Ofill.c index 37841ad..eb36e4b 100644 --- a/src/H5Ofill.c +++ b/src/H5Ofill.c @@ -123,22 +123,22 @@ H5FL_DEFINE(H5O_fill_t); static void * H5O_fill_new_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const uint8_t *p) { - H5O_fill_new_t *mesg=NULL; + H5O_fill_new_t *mesg = NULL; int version; void *ret_value; - FUNC_ENTER_NOAPI_NOINIT(H5O_fill_new_decode); + FUNC_ENTER_NOAPI_NOINIT(H5O_fill_new_decode) - assert(f); - assert(p); + HDassert(f); + HDassert(p); - if (NULL==(mesg=H5FL_CALLOC(H5O_fill_new_t))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value message"); + if(NULL == (mesg = H5FL_CALLOC(H5O_fill_new_t))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value message") /* Version */ version = *p++; - if( version != H5O_FILL_VERSION && version !=H5O_FILL_VERSION_2) - HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "bad version number for fill value message"); + if(version != H5O_FILL_VERSION && version !=H5O_FILL_VERSION_2) + HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "bad version number for fill value message") /* Space allocation time */ mesg->alloc_time = (H5D_alloc_time_t)*p++; @@ -152,28 +152,28 @@ H5O_fill_new_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const uint8_t *p) /* Only decode fill value information if one is defined */ if(mesg->fill_defined) { INT32DECODE(p, mesg->size); - if (mesg->size>0) { + if(mesg->size > 0) { H5_CHECK_OVERFLOW(mesg->size,ssize_t,size_t); - if (NULL==(mesg->buf=H5MM_malloc((size_t)mesg->size))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value"); + if(NULL == (mesg->buf = H5MM_malloc((size_t)mesg->size))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value") HDmemcpy(mesg->buf, p, (size_t)mesg->size); - } + } /* end if */ } /* end if */ else - mesg->size=(-1); + mesg->size = (-1); /* Set return value */ ret_value = (void*)mesg; done: - if (!ret_value && mesg) { + if(!ret_value && mesg) { if(mesg->buf) H5MM_xfree(mesg->buf); H5FL_FREE(H5O_fill_new_t,mesg); - } + } /* end if */ - FUNC_LEAVE_NOAPI(ret_value); -} + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5O_fill_new_decode() */ /*------------------------------------------------------------------------- @@ -195,35 +195,39 @@ done: static void * H5O_fill_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const uint8_t *p) { - H5O_fill_t *mesg=NULL; + H5O_fill_t *mesg = NULL; void *ret_value; - FUNC_ENTER_NOAPI_NOINIT(H5O_fill_decode); + FUNC_ENTER_NOAPI_NOINIT(H5O_fill_decode) - assert(f); - assert(p); + HDassert(f); + HDassert(p); - if (NULL==(mesg=H5FL_CALLOC(H5O_fill_t))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value message"); + if(NULL == (mesg = H5FL_CALLOC(H5O_fill_t))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value message") + + /* Fill value size */ UINT32DECODE(p, mesg->size); - if (mesg->size>0) { - if (NULL==(mesg->buf=H5MM_malloc(mesg->size))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value"); + + /* Only encode the fill value itself if there is one */ + if(mesg->size > 0) { + if(NULL == (mesg->buf = H5MM_malloc(mesg->size))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value") HDmemcpy(mesg->buf, p, mesg->size); - } + } /* end if */ /* Set return value */ ret_value = (void*)mesg; done: - if (!ret_value && mesg) { + if(!ret_value && mesg) { if(mesg->buf) H5MM_xfree(mesg->buf); - H5FL_FREE(H5O_fill_t,mesg); - } + H5FL_FREE(H5O_fill_t, mesg); + } /* end if */ - FUNC_LEAVE_NOAPI(ret_value); -} + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5O_fill_decode() */ /*------------------------------------------------------------------------- @@ -247,33 +251,36 @@ H5O_fill_new_encode(H5F_t UNUSED *f, uint8_t *p, const void *_mesg) { const H5O_fill_new_t *mesg = (const H5O_fill_new_t *)_mesg; - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_new_encode); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_new_encode) - assert(f); - assert(p); - assert(mesg && NULL==mesg->type); + HDassert(f); + HDassert(p); + HDassert(mesg && NULL == mesg->type); /* Version */ *p++ = H5O_FILL_VERSION_2; + /* Space allocation time */ *p++ = mesg->alloc_time; + /* Fill value writing time */ *p++ = mesg->fill_time; + /* Whether fill value is defined */ *p++ = mesg->fill_defined; /* Only write out the size and fill value if it is defined */ if(mesg->fill_defined) { INT32ENCODE(p, mesg->size); - if(mesg->size>0) + if(mesg->size > 0) if(mesg->buf) { - H5_CHECK_OVERFLOW(mesg->size,ssize_t,size_t); + H5_CHECK_OVERFLOW(mesg->size, ssize_t, size_t); HDmemcpy(p, mesg->buf, (size_t)mesg->size); } /* end if */ } /* end if */ - FUNC_LEAVE_NOAPI(SUCCEED); -} + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5O_fill_new_encode() */ /*------------------------------------------------------------------------- @@ -295,18 +302,18 @@ H5O_fill_encode(H5F_t UNUSED *f, uint8_t *p, const void *_mesg) { const H5O_fill_t *mesg = (const H5O_fill_t *)_mesg; - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_encode); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_encode) - assert(f); - assert(p); - assert(mesg && NULL==mesg->type); + HDassert(f); + HDassert(p); + HDassert(mesg && NULL == mesg->type); UINT32ENCODE(p, mesg->size); if(mesg->buf) HDmemcpy(p, mesg->buf, mesg->size); - FUNC_LEAVE_NOAPI(SUCCEED); -} + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5O_fill_encode() */ /*------------------------------------------------------------------------- @@ -335,30 +342,30 @@ H5O_fill_new_copy(const void *_mesg, void *_dest, unsigned UNUSED update_flags) H5O_fill_new_t *dest = (H5O_fill_new_t *)_dest; void *ret_value; - FUNC_ENTER_NOAPI_NOINIT(H5O_fill_new_copy); + FUNC_ENTER_NOAPI_NOINIT(H5O_fill_new_copy) - assert(mesg); + HDassert(mesg); - if (!dest && NULL==(dest=H5FL_MALLOC(H5O_fill_new_t))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill message"); + if(!dest && NULL == (dest = H5FL_MALLOC(H5O_fill_new_t))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill message") /* Copy data type of fill value */ - if (mesg->type) { - if(NULL==(dest->type=H5T_copy(mesg->type, H5T_COPY_TRANSIENT))) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, NULL, "unable to copy fill value data type"); + if(mesg->type) { + if(NULL == (dest->type = H5T_copy(mesg->type, H5T_COPY_TRANSIENT))) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, NULL, "unable to copy fill value data type") } /* end if */ else - dest->type=NULL; + dest->type = NULL; /* Copy fill value and its size */ - if (mesg->buf) { - H5_CHECK_OVERFLOW(mesg->size,ssize_t,size_t); - if (NULL==(dest->buf=H5MM_malloc((size_t)mesg->size))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value"); + if(mesg->buf) { + H5_CHECK_OVERFLOW(mesg->size, ssize_t, size_t); + if(NULL == (dest->buf = H5MM_malloc((size_t)mesg->size))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value") HDmemcpy(dest->buf, mesg->buf, (size_t)mesg->size); } /* end if */ else - dest->buf=NULL; + dest->buf = NULL; dest->size = mesg->size; /* Copy three fill value attributes */ @@ -370,17 +377,17 @@ H5O_fill_new_copy(const void *_mesg, void *_dest, unsigned UNUSED update_flags) ret_value = dest; done: - if (!ret_value && dest) { + if(!ret_value && dest) { if(dest->buf) H5MM_xfree(dest->buf); - if (dest->type) + if(dest->type) H5T_close(dest->type); - if (!_dest) - H5FL_FREE(H5O_fill_new_t,dest); - } + if(!_dest) + H5FL_FREE(H5O_fill_new_t, dest); + } /* end if */ - FUNC_LEAVE_NOAPI(ret_value); -} + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5O_fill_new_copy() */ /*------------------------------------------------------------------------- @@ -407,27 +414,27 @@ H5O_fill_copy(const void *_mesg, void *_dest, unsigned UNUSED update_flags) H5O_fill_t *dest = (H5O_fill_t *)_dest; void *ret_value; - FUNC_ENTER_NOAPI_NOINIT(H5O_fill_copy); + FUNC_ENTER_NOAPI_NOINIT(H5O_fill_copy) - assert(mesg); + HDassert(mesg); - if (!dest && NULL==(dest=H5FL_CALLOC(H5O_fill_t))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill message"); + if(!dest && NULL == (dest = H5FL_CALLOC(H5O_fill_t))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill message") - if (mesg->type) { - if(NULL==(dest->type=H5T_copy(mesg->type, H5T_COPY_TRANSIENT))) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, NULL, "unable to copy fill value data type"); + if(mesg->type) { + if(NULL == (dest->type = H5T_copy(mesg->type, H5T_COPY_TRANSIENT))) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, NULL, "unable to copy fill value data type") } /* end if */ else - dest->type=NULL; + dest->type = NULL; - if (mesg->buf) { - if (NULL==(dest->buf=H5MM_malloc(mesg->size))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value"); + if(mesg->buf) { + if(NULL == (dest->buf = H5MM_malloc(mesg->size))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for fill value") HDmemcpy(dest->buf, mesg->buf, mesg->size); } /* end if */ else - dest->buf=NULL; + dest->buf = NULL; dest->size = mesg->size; /* Set return value */ @@ -443,8 +450,8 @@ done: H5FL_FREE(H5O_fill_t,dest); } - FUNC_LEAVE_NOAPI(ret_value); -} + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5O_fill_copy() */ /*------------------------------------------------------------------------- @@ -473,10 +480,10 @@ H5O_fill_new_size(const H5F_t UNUSED *f, const void *_mesg) const H5O_fill_new_t *mesg = (const H5O_fill_new_t *)_mesg; size_t ret_value; - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_new_size); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_new_size) - assert(f); - assert(mesg); + HDassert(f); + HDassert(mesg); ret_value = 1 + /* Version number */ 1 + /* Space allocation time */ @@ -484,10 +491,10 @@ H5O_fill_new_size(const H5F_t UNUSED *f, const void *_mesg) 1; /* Fill value defined */ if(mesg->fill_defined) ret_value += 4 + /* Fill value size */ - (mesg->size>0 ? mesg->size : 0); /* Size of fill value */ + (mesg->size > 0 ? mesg->size : 0); /* Size of fill value */ - FUNC_LEAVE_NOAPI(ret_value); -} + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5O_fill_new_size() */ /*------------------------------------------------------------------------- @@ -513,13 +520,13 @@ H5O_fill_size(const H5F_t UNUSED *f, const void *_mesg) { const H5O_fill_t *mesg = (const H5O_fill_t *)_mesg; - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_size); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_size) - assert(f); - assert(mesg); + HDassert(f); + HDassert(mesg); - FUNC_LEAVE_NOAPI(4+mesg->size); -} + FUNC_LEAVE_NOAPI(4 + mesg->size) +} /* end H5O_fill_size() */ /*------------------------------------------------------------------------- @@ -543,23 +550,23 @@ H5O_fill_new_reset(void *_mesg) { H5O_fill_new_t *mesg = (H5O_fill_new_t *)_mesg; - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_new_reset); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_new_reset) - assert(mesg); + HDassert(mesg); if(mesg->buf) mesg->buf = H5MM_xfree(mesg->buf); mesg->size = -1; - if (mesg->type) { + if(mesg->type) { H5T_close(mesg->type); mesg->type = NULL; - } + } /* end if */ mesg->alloc_time = (H5D_alloc_time_t)0; mesg->fill_time = (H5D_fill_time_t)0; mesg->fill_defined = FALSE; - FUNC_LEAVE_NOAPI(SUCCEED); -} + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5O_fill_new_reset() */ /*------------------------------------------------------------------------- @@ -581,20 +588,20 @@ H5O_fill_reset(void *_mesg) { H5O_fill_t *mesg = (H5O_fill_t *)_mesg; - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_reset); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_reset) - assert(mesg); + HDassert(mesg); if(mesg->buf) mesg->buf = H5MM_xfree(mesg->buf); mesg->size = 0; - if (mesg->type) { + if(mesg->type) { H5T_close(mesg->type); mesg->type = NULL; - } + } /* end if */ - FUNC_LEAVE_NOAPI(SUCCEED); -} + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5O_fill_reset() */ /*------------------------------------------------------------------------- @@ -614,14 +621,14 @@ H5O_fill_reset(void *_mesg) static herr_t H5O_fill_new_free (void *mesg) { - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_new_free); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_new_free) - assert (mesg); + HDassert(mesg); - H5FL_FREE(H5O_fill_new_t,mesg); + H5FL_FREE(H5O_fill_new_t, mesg); - FUNC_LEAVE_NOAPI(SUCCEED); -} + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5O_fill_new_free() */ /*------------------------------------------------------------------------- @@ -641,14 +648,14 @@ H5O_fill_new_free (void *mesg) static herr_t H5O_fill_free (void *mesg) { - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_free); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_free) - assert (mesg); + HDassert(mesg); - H5FL_FREE(H5O_fill_t,mesg); + H5FL_FREE(H5O_fill_t, mesg); - FUNC_LEAVE_NOAPI(SUCCEED); -} + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5O_fill_new_free() */ /*------------------------------------------------------------------------- @@ -672,13 +679,13 @@ H5O_fill_new_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FIL const H5O_fill_new_t *mesg = (const H5O_fill_new_t *)_mesg; H5D_fill_value_t fill_status; /* Whether the fill value is defined */ - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_new_debug); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_new_debug) - assert(f); - assert(mesg); - assert(stream); - assert(indent>=0); - assert(fwidth>=0); + HDassert(f); + HDassert(mesg); + HDassert(stream); + HDassert(indent>=0); + HDassert(fwidth>=0); HDfprintf(stream, "%*s%-*s %u\n", indent, "", fwidth, "Version:", (unsigned)H5O_FILL_VERSION); @@ -743,15 +750,15 @@ H5O_fill_new_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FIL HDfprintf(stream, "%*s%-*s %Zu\n", indent, "", fwidth, "Size:", mesg->size); fprintf(stream, "%*s%-*s ", indent, "", fwidth, "Data type:"); - if (mesg->type) { + if(mesg->type) { H5T_debug(mesg->type, stream); fprintf(stream, "\n"); - } else { + } /* end if */ + else fprintf(stream, "<dataset type>\n"); - } FUNC_LEAVE_NOAPI(SUCCEED); -} +} /* end H5O_fill_new_debug() */ /*------------------------------------------------------------------------- @@ -774,26 +781,26 @@ H5O_fill_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE *s { const H5O_fill_t *mesg = (const H5O_fill_t *)_mesg; - FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_debug); + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_fill_debug) - assert(f); - assert(mesg); - assert(stream); - assert(indent>=0); - assert(fwidth>=0); + HDassert(f); + HDassert(mesg); + HDassert(stream); + HDassert(indent>=0); + HDassert(fwidth>=0); HDfprintf(stream, "%*s%-*s %Zu\n", indent, "", fwidth, "Bytes:", mesg->size); fprintf(stream, "%*s%-*s ", indent, "", fwidth, "Data type:"); - if (mesg->type) { + if(mesg->type) { H5T_debug(mesg->type, stream); fprintf(stream, "\n"); - } else { + } /* end if */ + else fprintf(stream, "<dataset type>\n"); - } - FUNC_LEAVE_NOAPI(SUCCEED); -} + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5O_fill_debug() */ /*------------------------------------------------------------------------- @@ -817,75 +824,76 @@ herr_t H5O_fill_convert(void *_fill, H5T_t *dset_type, hid_t dxpl_id) { H5O_fill_new_t *fill = _fill; - H5T_path_t *tpath=NULL; /*type conversion info */ - void *buf=NULL, *bkg=NULL; /*conversion buffers */ - hid_t src_id=-1, dst_id=-1; /*datatype identifiers */ - herr_t ret_value=SUCCEED; /* Return value */ + H5T_path_t *tpath; /* Type conversion info */ + void *buf = NULL, *bkg = NULL; /* Conversion buffers */ + hid_t src_id = -1, dst_id = -1; /* Datatype identifiers */ + herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_fill_convert); + FUNC_ENTER_NOAPI_NOINIT(H5O_fill_convert) - assert(fill); - assert(dset_type); + HDassert(fill); + HDassert(dset_type); /* No-op cases */ - if (!fill->buf || !fill->type || 0==H5T_cmp(fill->type, dset_type, FALSE)) { - if (fill->type) + if(!fill->buf || !fill->type || 0 == H5T_cmp(fill->type, dset_type, FALSE)) { + if(fill->type) H5T_close(fill->type); fill->type = NULL; HGOTO_DONE(SUCCEED); - } + } /* end if */ /* * Can we convert between source and destination data types? */ - if (NULL==(tpath=H5T_path_find(fill->type, dset_type, NULL, NULL, dxpl_id, FALSE))) + if(NULL == (tpath = H5T_path_find(fill->type, dset_type, NULL, NULL, dxpl_id, FALSE))) HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to convert between src and dst datatypes") /* Don't bother doing anything if there will be no actual conversion */ - if (!H5T_path_noop(tpath)) { + if(!H5T_path_noop(tpath)) { if ((src_id = H5I_register(H5I_DATATYPE, - H5T_copy(fill->type, H5T_COPY_ALL)))<0 || + H5T_copy(fill->type, H5T_COPY_ALL))) < 0 || (dst_id = H5I_register(H5I_DATATYPE, - H5T_copy(dset_type, H5T_COPY_ALL)))<0) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to copy/register data type"); + H5T_copy(dset_type, H5T_COPY_ALL))) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to copy/register data type") /* * Datatype conversions are always done in place, so we need a buffer * that is large enough for both source and destination. */ - if (H5T_get_size(fill->type)>=H5T_get_size(dset_type)) { + if(H5T_get_size(fill->type) >= H5T_get_size(dset_type)) buf = fill->buf; - } else { - if (NULL==(buf=H5MM_malloc(H5T_get_size(dset_type)))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for type conversion"); + else { + if(NULL == (buf = H5MM_malloc(H5T_get_size(dset_type)))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for type conversion") HDmemcpy(buf, fill->buf, H5T_get_size(fill->type)); - } + } /* end else */ if(H5T_path_bkg(tpath) && NULL == (bkg = H5MM_malloc(H5T_get_size(dset_type)))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for type conversion"); + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for type conversion") /* Do the conversion */ if(H5T_convert(tpath, src_id, dst_id, (size_t)1, (size_t)0, (size_t)0, buf, bkg, dxpl_id) < 0) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "datatype conversion failed"); + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "datatype conversion failed") /* Update the fill message */ if(buf != fill->buf) { H5MM_xfree(fill->buf); fill->buf = buf; - } + } /* end if */ H5T_close(fill->type); fill->type = NULL; - H5_ASSIGN_OVERFLOW(fill->size,H5T_get_size(dset_type),size_t,ssize_t); + H5_ASSIGN_OVERFLOW(fill->size, H5T_get_size(dset_type), size_t, ssize_t); } /* end if */ done: - if (src_id>=0) + if(src_id >= 0) H5I_dec_ref(src_id); - if (dst_id>=0) + if(dst_id >= 0) H5I_dec_ref(dst_id); - if (buf!=fill->buf) + if(buf != fill->buf) H5MM_xfree(buf); - if (bkg) + if(bkg) H5MM_xfree(bkg); FUNC_LEAVE_NOAPI(ret_value); -} +} /* end H5O_fill_convert() */ + diff --git a/src/H5Oginfo.c b/src/H5Oginfo.c index 7ca79df..ae8aaef 100644 --- a/src/H5Oginfo.c +++ b/src/H5Oginfo.c @@ -104,11 +104,6 @@ H5O_ginfo_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const uint8_t *p) /* check args */ HDassert(p); -#ifndef NDEBUG -{ - const uint8_t *start_p = p; -#endif /* NDEBUG */ - /* Version of message */ if(*p++ != H5O_GINFO_VERSION) HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "bad version number for message") @@ -130,11 +125,6 @@ H5O_ginfo_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const uint8_t *p) UINT32DECODE(p, ginfo->est_num_entries) UINT32DECODE(p, ginfo->est_name_len) -#ifndef NDEBUG - HDassert((size_t)(p - start_p) == H5O_ginfo_size(f, ginfo)); -} -#endif /* NDEBUG */ - /* Set return value */ ret_value = ginfo; @@ -174,11 +164,6 @@ H5O_ginfo_encode(H5F_t UNUSED *f, uint8_t *p, const void *_mesg) HDassert(p); HDassert(ginfo); -#ifndef NDEBUG -{ - uint8_t *start_p = p; -#endif /* NDEBUG */ - /* Message version */ *p++ = H5O_GINFO_VERSION; @@ -195,11 +180,6 @@ H5O_ginfo_encode(H5F_t UNUSED *f, uint8_t *p, const void *_mesg) UINT32ENCODE(p, ginfo->est_num_entries) UINT32ENCODE(p, ginfo->est_name_len) -#ifndef NDEBUG - HDassert((size_t)(p - start_p) == H5O_ginfo_size(f, ginfo)); -} -#endif /* NDEBUG */ - FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5O_ginfo_encode() */ diff --git a/src/H5Olayout.c b/src/H5Olayout.c index 21c2820..6414c37 100644 --- a/src/H5Olayout.c +++ b/src/H5Olayout.c @@ -112,28 +112,28 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p) unsigned u; void *ret_value; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_layout_decode); + FUNC_ENTER_NOAPI_NOINIT(H5O_layout_decode) /* check args */ - assert(f); - assert(p); + HDassert(f); + HDassert(p); /* decode */ - if (NULL==(mesg = H5FL_CALLOC(H5O_layout_t))) - HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed"); + if(NULL == (mesg = H5FL_CALLOC(H5O_layout_t))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") /* Version. 1 when space allocated; 2 when space allocation is delayed */ mesg->version = *p++; - if (mesg->version<H5O_LAYOUT_VERSION_1 || mesg->version>H5O_LAYOUT_VERSION_3) - HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "bad version number for layout message"); + if(mesg->version < H5O_LAYOUT_VERSION_1 || mesg->version > H5O_LAYOUT_VERSION_3) + HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "bad version number for layout message") if(mesg->version < H5O_LAYOUT_VERSION_3) { unsigned ndims; /* Num dimensions in chunk */ /* Dimensionality */ ndims = *p++; - if (ndims>H5O_LAYOUT_NDIMS) - HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "dimensionality is too large"); + if(ndims > H5O_LAYOUT_NDIMS) + HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "dimensionality is too large") /* Layout class */ mesg->type = (H5D_layout_t)*p++; @@ -143,16 +143,16 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p) p += 5; /* Address */ - if(mesg->type==H5D_CONTIGUOUS) + if(mesg->type == H5D_CONTIGUOUS) H5F_addr_decode(f, &p, &(mesg->u.contig.addr)); - else if(mesg->type==H5D_CHUNKED) + else if(mesg->type == H5D_CHUNKED) H5F_addr_decode(f, &p, &(mesg->u.chunk.addr)); /* Read the size */ - if(mesg->type!=H5D_CHUNKED) { + if(mesg->type != H5D_CHUNKED) { size_t temp_dim[H5O_LAYOUT_NDIMS]; - for (u = 0; u < ndims; u++) + for(u = 0; u < ndims; u++) UINT32DECODE(p, temp_dim[u]); /* Don't compute size of contiguous storage here, due to possible @@ -164,23 +164,23 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p) } /* end if */ else { mesg->u.chunk.ndims=ndims; - for (u = 0; u < ndims; u++) + for(u = 0; u < ndims; u++) UINT32DECODE(p, mesg->u.chunk.dim[u]); /* Compute chunk size */ - for (u=1, mesg->u.chunk.size=mesg->u.chunk.dim[0]; u<ndims; u++) + for(u = 1, mesg->u.chunk.size = mesg->u.chunk.dim[0]; u < ndims; u++) mesg->u.chunk.size *= mesg->u.chunk.dim[u]; } /* end if */ if(mesg->type == H5D_COMPACT) { UINT32DECODE(p, mesg->u.compact.size); if(mesg->u.compact.size > 0) { - if(NULL==(mesg->u.compact.buf=H5MM_malloc(mesg->u.compact.size))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for compact data buffer"); + if(NULL == (mesg->u.compact.buf = H5MM_malloc(mesg->u.compact.size))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for compact data buffer") HDmemcpy(mesg->u.compact.buf, p, mesg->u.compact.size); p += mesg->u.compact.size; - } - } + } /* end if */ + } /* end if */ } /* end if */ else { /* Layout class */ @@ -196,46 +196,46 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p) case H5D_CHUNKED: /* Dimensionality */ mesg->u.chunk.ndims = *p++; - if (mesg->u.chunk.ndims>H5O_LAYOUT_NDIMS) - HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "dimensionality is too large"); + if(mesg->u.chunk.ndims > H5O_LAYOUT_NDIMS) + HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "dimensionality is too large") /* B-tree address */ H5F_addr_decode(f, &p, &(mesg->u.chunk.addr)); /* Chunk dimensions */ - for (u = 0; u < mesg->u.chunk.ndims; u++) + for(u = 0; u < mesg->u.chunk.ndims; u++) UINT32DECODE(p, mesg->u.chunk.dim[u]); /* Compute chunk size */ - for (u=1, mesg->u.chunk.size=mesg->u.chunk.dim[0]; u<mesg->u.chunk.ndims; u++) + for(u = 1, mesg->u.chunk.size = mesg->u.chunk.dim[0]; u < mesg->u.chunk.ndims; u++) mesg->u.chunk.size *= mesg->u.chunk.dim[u]; break; case H5D_COMPACT: UINT16DECODE(p, mesg->u.compact.size); if(mesg->u.compact.size > 0) { - if(NULL==(mesg->u.compact.buf=H5MM_malloc(mesg->u.compact.size))) - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for compact data buffer"); + if(NULL == (mesg->u.compact.buf = H5MM_malloc(mesg->u.compact.size))) + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed for compact data buffer") HDmemcpy(mesg->u.compact.buf, p, mesg->u.compact.size); p += mesg->u.compact.size; } /* end if */ break; default: - HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "Invalid layout class"); + HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "Invalid layout class") } /* end switch */ } /* end else */ /* Set return value */ - ret_value=mesg; + ret_value = mesg; done: - if(ret_value==NULL) { + if(ret_value == NULL) if(mesg) - H5FL_FREE(H5O_layout_t,mesg); - } /* end if */ - FUNC_LEAVE_NOAPI(ret_value); -} + H5FL_FREE(H5O_layout_t, mesg); + + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5O_layout_decode() */ /*------------------------------------------------------------------------- @@ -273,14 +273,14 @@ H5O_layout_encode(H5F_t *f, uint8_t *p, const void *_mesg) { const H5O_layout_t *mesg = (const H5O_layout_t *) _mesg; unsigned u; - herr_t ret_value=SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5O_layout_encode); + FUNC_ENTER_NOAPI_NOINIT(H5O_layout_encode) /* check args */ - assert(f); - assert(mesg); - assert(p); + HDassert(f); + HDassert(mesg); + HDassert(p); /* Version 3 by default now. */ *p++ = H5O_LAYOUT_VERSION_3; @@ -297,14 +297,14 @@ H5O_layout_encode(H5F_t *f, uint8_t *p, const void *_mesg) case H5D_CHUNKED: /* Number of dimensions */ - assert(mesg->u.chunk.ndims > 0 && mesg->u.chunk.ndims <= H5O_LAYOUT_NDIMS); + HDassert(mesg->u.chunk.ndims > 0 && mesg->u.chunk.ndims <= H5O_LAYOUT_NDIMS); *p++ = mesg->u.chunk.ndims; /* B-tree address */ H5F_addr_encode(f, &p, mesg->u.chunk.addr); /* Dimension sizes */ - for (u = 0; u < mesg->u.chunk.ndims; u++) + for(u = 0; u < mesg->u.chunk.ndims; u++) UINT32ENCODE(p, mesg->u.chunk.dim[u]); break; @@ -313,19 +313,19 @@ H5O_layout_encode(H5F_t *f, uint8_t *p, const void *_mesg) UINT16ENCODE(p, mesg->u.compact.size); /* Raw data */ - if(mesg->u.compact.size>0 && mesg->u.compact.buf) { + if(mesg->u.compact.size > 0 && mesg->u.compact.buf) { HDmemcpy(p, mesg->u.compact.buf, mesg->u.compact.size); p += mesg->u.compact.size; } /* end if */ break; default: - HGOTO_ERROR(H5E_OHDR, H5E_CANTENCODE, FAIL, "Invalid layout class"); + HGOTO_ERROR(H5E_OHDR, H5E_CANTENCODE, FAIL, "Invalid layout class") } /* end switch */ done: FUNC_LEAVE_NOAPI(ret_value); -} +} /* end H5O_layout_encode() */ /*------------------------------------------------------------------------- @@ -357,7 +357,7 @@ H5O_layout_copy(const void *_mesg, void *_dest, unsigned UNUSED update_flags) /* check args */ assert(mesg); if (!dest && NULL==(dest=H5FL_MALLOC(H5O_layout_t))) - HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed"); + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") /* copy */ *dest = *mesg; @@ -366,7 +366,7 @@ H5O_layout_copy(const void *_mesg, void *_dest, unsigned UNUSED update_flags) if(mesg->type==H5D_COMPACT) { /* Allocate memory for the raw data */ if (NULL==(dest->u.compact.buf=H5MM_malloc(dest->u.compact.size))) - HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL, "unable to allocate memory for compact dataset"); + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "unable to allocate memory for compact dataset") /* Copy over the raw data */ HDmemcpy(dest->u.compact.buf,mesg->u.compact.buf,dest->u.compact.size); @@ -428,12 +428,12 @@ H5O_layout_meta_size(const H5F_t *f, const void *_mesg) ret_value += H5F_SIZEOF_ADDR(f); /* Address of data */ /* Dimension sizes */ - ret_value += mesg->u.chunk.ndims*4; + ret_value += mesg->u.chunk.ndims * 4; break; case H5D_COMPACT: /* Size of raw data */ - ret_value+=2; + ret_value += 2; break; default: @@ -586,17 +586,17 @@ H5O_layout_delete(H5F_t *f, hid_t dxpl_id, const void *_mesg, hbool_t UNUSED adj case H5D_CONTIGUOUS: /* Contiguous block on disk */ /* Free the file space for the raw data */ if (H5D_contig_delete(f, dxpl_id, mesg)<0) - HGOTO_ERROR(H5E_OHDR, H5E_CANTFREE, FAIL, "unable to free raw data"); + HGOTO_ERROR(H5E_OHDR, H5E_CANTFREE, FAIL, "unable to free raw data") break; case H5D_CHUNKED: /* Chunked blocks on disk */ /* Free the file space for the raw data */ if (H5D_istore_delete(f, dxpl_id, mesg)<0) - HGOTO_ERROR(H5E_OHDR, H5E_CANTFREE, FAIL, "unable to free raw data"); + HGOTO_ERROR(H5E_OHDR, H5E_CANTFREE, FAIL, "unable to free raw data") break; default: - HGOTO_ERROR (H5E_OHDR, H5E_BADTYPE, FAIL, "not valid storage type"); + HGOTO_ERROR(H5E_OHDR, H5E_BADTYPE, FAIL, "not valid storage type") } /* end switch */ done: @@ -686,7 +686,7 @@ H5O_layout_copy_file(H5F_t *file_src, void *mesg_src, H5F_t *file_dst, hid_t dxp break; default: - HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "Invalid layout class"); + HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "Invalid layout class") } /* end switch */ /* Set return value */ diff --git a/src/H5Olinfo.c b/src/H5Olinfo.c index bac8200..12cf38f 100644 --- a/src/H5Olinfo.c +++ b/src/H5Olinfo.c @@ -119,11 +119,6 @@ H5O_linfo_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p) HDassert(f); HDassert(p); -#ifndef NDEBUG -{ - const uint8_t *start_p = p; -#endif /* NDEBUG */ - /* Version of message */ if(*p++ != H5O_LINFO_VERSION) HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "bad version number for message") @@ -156,11 +151,6 @@ H5O_linfo_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p) else linfo->corder_bt2_addr = HADDR_UNDEF; -#ifndef NDEBUG - HDassert((size_t)(p - start_p) == H5O_linfo_size(f, linfo)); -} -#endif /* NDEBUG */ - /* Set return value */ ret_value = linfo; @@ -199,11 +189,6 @@ H5O_linfo_encode(H5F_t *f, uint8_t *p, const void *_mesg) HDassert(p); HDassert(linfo); -#ifndef NDEBUG -{ - uint8_t *start_p = p; -#endif /* NDEBUG */ - /* Message version */ *p++ = H5O_LINFO_VERSION; @@ -231,11 +216,6 @@ H5O_linfo_encode(H5F_t *f, uint8_t *p, const void *_mesg) else HDassert(!H5F_addr_defined(linfo->corder_bt2_addr)); -#ifndef NDEBUG - HDassert((size_t)(p - start_p) == H5O_linfo_size(f, linfo)); -} -#endif /* NDEBUG */ - FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5O_linfo_encode() */ diff --git a/src/H5Osdspace.c b/src/H5Osdspace.c index 32be4bc..f1f5d36 100644 --- a/src/H5Osdspace.c +++ b/src/H5Osdspace.c @@ -235,7 +235,7 @@ H5O_sdspace_encode(H5F_t *f, uint8_t *p, const void *_mesg) const H5S_extent_t *sdim = (const H5S_extent_t *)_mesg; unsigned flags = 0; unsigned version; - hbool_t use_latest_format; /* Flag indicating the new group format should be used */ + hbool_t use_latest_format; /* Flag indicating the newest file format should be used */ unsigned u; /* Local counting variable */ FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_sdspace_encode) @@ -251,7 +251,7 @@ H5O_sdspace_encode(H5F_t *f, uint8_t *p, const void *_mesg) /* Version */ if(use_latest_format) version = H5O_SDSPACE_VERSION_LATEST; - else if(sdim->type == H5S_NULL || use_latest_format) + else if(sdim->type == H5S_NULL) version = H5O_SDSPACE_VERSION_2; else version = H5O_SDSPACE_VERSION_1; @@ -361,7 +361,7 @@ static size_t H5O_sdspace_size(const H5F_t *f, const void *_mesg) { const H5S_extent_t *space = (const H5S_extent_t *)_mesg; - hbool_t use_latest_format; /* Flag indicating the new group format should be used */ + hbool_t use_latest_format; /* Flag indicating the newest file format should be used */ size_t ret_value; FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_sdspace_size) diff --git a/test/fillval.c b/test/fillval.c index b204523..2385585 100644 --- a/test/fillval.c +++ b/test/fillval.c @@ -1266,7 +1266,7 @@ test_extend(hid_t fapl, const char *base_name, H5D_layout_t layout) *------------------------------------------------------------------------- */ static int -test_compatible(void) +test_compatible(hid_t fapl) { hid_t file=-1, dset1=-1, dset2=-1; hid_t dcpl1=-1, dcpl2=-1, fspace=-1, mspace=-1; @@ -1287,7 +1287,7 @@ test_compatible(void) } strcat(testfile, FILE_COMPATIBLE); - if ((file=H5Fopen(testfile, H5F_ACC_RDONLY, H5P_DEFAULT))<0) { + if ((file=H5Fopen(testfile, H5F_ACC_RDONLY, fapl))<0) { printf(" Could not open file %s. Try set $srcdir to point at the " "source directory of test\n", testfile); goto error; @@ -1409,68 +1409,97 @@ error: int main(int argc, char *argv[]) { - int nerrors=0, argno, test_contig=1, test_chunk=1, test_compact=1; const char *envval = NULL; - hid_t fapl=-1; envval = HDgetenv("HDF5_DRIVER"); - if (envval == NULL) + if(envval == NULL) envval = "nomatch"; - if (HDstrcmp(envval, "core") && HDstrcmp(envval, "split") && HDstrcmp(envval, "multi")) { - if (argc>=2) { + if(HDstrcmp(envval, "core") && HDstrcmp(envval, "split") && HDstrcmp(envval, "multi")) { + int nerrors=0, argno, test_contig=1, test_chunk=1, test_compact=1; + hid_t fapl = (-1), fapl2 = (-1); /* File access property lists */ + hbool_t new_format; /* Whether to use the new format or not */ + + if(argc >= 2) { test_contig = test_chunk = test_compact = 0; - for (argno=1; argno<argc; argno++) { - if (!strcmp(argv[argno], "contiguous")) { + for(argno = 1; argno < argc; argno++) { + if(!strcmp(argv[argno], "contiguous")) test_contig = 1; - } else if (!strcmp(argv[argno], "chunked")) { + else if(!strcmp(argv[argno], "chunked")) test_chunk = 1; - } else if (!strcmp(argv[argno], "compact")) { + else if(!strcmp(argv[argno], "compact")) test_compact =1; - } else { + else { fprintf(stderr, "usage: %s [contiguous] [chunked] [compact]\n", argv[0]); exit(1); } - } - } + } /* end for */ + } /* end if */ h5_reset(); fapl = h5_fileaccess(); + /* Property list tests */ nerrors += test_getset(); - /* Chunked storage layout tests */ - if (test_chunk) { - nerrors += test_create(fapl, FILENAME[0], H5D_CHUNKED); - nerrors += test_rdwr (fapl, FILENAME[2], H5D_CHUNKED); - nerrors += test_extend(fapl, FILENAME[4], H5D_CHUNKED); - } - - /* Contiguous storage layout tests */ - if (test_contig) { - nerrors += test_create(fapl, FILENAME[1], H5D_CONTIGUOUS); - nerrors += test_rdwr (fapl, FILENAME[3], H5D_CONTIGUOUS); - nerrors += test_extend(fapl, FILENAME[5], H5D_CONTIGUOUS); - nerrors += test_compatible(); - } - - /* Compact dataset storage tests */ - if (test_compact) { - nerrors += test_create(fapl, FILENAME[6], H5D_COMPACT); - nerrors += test_rdwr (fapl, FILENAME[7], H5D_COMPACT); - } - - if (nerrors) goto error; + /* Copy the file access property list */ + if((fapl2 = H5Pcopy(fapl)) < 0) TEST_ERROR + + /* Set the "use the latest version of the format" flag for creating objects in the file */ + if(H5Pset_latest_format(fapl2, TRUE) < 0) TEST_ERROR + + /* Loop over using new group format */ + for(new_format = FALSE; new_format <= TRUE; new_format++) { + hid_t my_fapl; + + /* Set the FAPL for the type of format */ + if(new_format) { + puts("\nTesting with new file format:"); + my_fapl = fapl2; + } /* end if */ + else { + puts("Testing with old file format:"); + my_fapl = fapl; + } /* end else */ + + /* Chunked storage layout tests */ + if(test_chunk) { + nerrors += test_create(my_fapl, FILENAME[0], H5D_CHUNKED); + nerrors += test_rdwr (my_fapl, FILENAME[2], H5D_CHUNKED); + nerrors += test_extend(my_fapl, FILENAME[4], H5D_CHUNKED); + } /* end if */ + + /* Contiguous storage layout tests */ + if(test_contig) { + nerrors += test_create(my_fapl, FILENAME[1], H5D_CONTIGUOUS); + nerrors += test_rdwr (my_fapl, FILENAME[3], H5D_CONTIGUOUS); + nerrors += test_extend(my_fapl, FILENAME[5], H5D_CONTIGUOUS); + nerrors += test_compatible(my_fapl); + } /* end if */ + + /* Compact dataset storage tests */ + if(test_compact) { + nerrors += test_create(my_fapl, FILENAME[6], H5D_COMPACT); + nerrors += test_rdwr (my_fapl, FILENAME[7], H5D_COMPACT); + } /* end if */ + } /* end for */ + + /* Close 2nd FAPL */ + H5Pclose(fapl2); + + if(nerrors) + goto error; puts("All fill value tests passed."); - if (h5_cleanup(FILENAME, fapl)) remove(FILE_NAME_RAW); - } + + if(h5_cleanup(FILENAME, fapl)) + remove(FILE_NAME_RAW); + } /* end if */ else - { puts("All fill value tests skipped - Incompatible with current Virtual File Driver"); - } - return 0; - error: - puts("***** FILL VALUE TESTS FAILED *****"); - return 1; + return 0; +error: + puts("***** FILL VALUE TESTS FAILED *****"); + return 1; } + diff --git a/test/links.c b/test/links.c index 2290e69..1a5f898 100644 --- a/test/links.c +++ b/test/links.c @@ -5266,4 +5266,3 @@ error: return 1; } - diff --git a/test/tattr.c b/test/tattr.c index b6514b7..86843d1 100644 --- a/test/tattr.c +++ b/test/tattr.c @@ -99,7 +99,7 @@ herr_t attr_op1(hid_t loc_id, const char *name, void *op_data); ** ****************************************************************/ static void -test_attr_basic_write(void) +test_attr_basic_write(hid_t fapl) { hid_t fid1; /* HDF5 File IDs */ hid_t dataset; /* Dataset ID */ @@ -120,7 +120,7 @@ test_attr_basic_write(void) MESSAGE(5, ("Testing Basic Scalar Attribute Writing Functions\n")); /* Create file */ - fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl); CHECK(fid1, FAIL, "H5Fcreate"); /* Create dataspace for dataset */ @@ -263,7 +263,7 @@ test_attr_basic_write(void) CHECK(ret, FAIL, "H5Dclose"); /* Create group */ - group = H5Gcreate(fid1, GROUP1_NAME, 0); + group = H5Gcreate(fid1, GROUP1_NAME, (size_t)0); CHECK(group, FAIL, "H5Gcreate"); /* Create dataspace for attribute */ @@ -313,7 +313,7 @@ test_attr_basic_write(void) ** ****************************************************************/ static void -test_attr_basic_read(void) +test_attr_basic_read(hid_t fapl) { hid_t fid1; /* HDF5 File IDs */ hid_t dataset; /* Dataset ID */ @@ -328,7 +328,7 @@ test_attr_basic_read(void) MESSAGE(5, ("Testing Basic Attribute Functions\n")); /* Create file */ - fid1 = H5Fopen(FILENAME, H5F_ACC_RDWR, H5P_DEFAULT); + fid1 = H5Fopen(FILENAME, H5F_ACC_RDWR, fapl); CHECK(fid1, FAIL, "H5Fopen"); /* Open the dataset */ @@ -400,7 +400,7 @@ test_attr_basic_read(void) ** ****************************************************************/ static void -test_attr_flush(void) +test_attr_flush(hid_t fapl) { hid_t fil, /* File ID */ att, /* Attribute ID */ @@ -413,7 +413,7 @@ test_attr_flush(void) /* Output message about test being performed */ MESSAGE(5, ("Testing Attribute Flushing\n")); - fil = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + fil = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl); CHECK(fil, FAIL, "H5Fcreate"); spc = H5Screate(H5S_SCALAR); @@ -465,7 +465,7 @@ test_attr_flush(void) ** ****************************************************************/ static void -test_attr_plist(void) +test_attr_plist(hid_t fapl) { hid_t fid1; /* HDF5 File IDs */ hid_t dataset; /* Dataset ID */ @@ -481,7 +481,7 @@ test_attr_plist(void) MESSAGE(5, ("Testing Attribute Property Lists\n")); /* Create file */ - fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl); CHECK(fid1, FAIL, "H5Fcreate"); /* Create dataspace for dataset */ @@ -578,7 +578,7 @@ test_attr_plist(void) ** ****************************************************************/ static void -test_attr_compound_write(void) +test_attr_compound_write(hid_t fapl) { hid_t fid1; /* HDF5 File IDs */ hid_t dataset; /* Dataset ID */ @@ -593,7 +593,7 @@ test_attr_compound_write(void) MESSAGE(5, ("Testing Multiple Attribute Functions\n")); /* Create file */ - fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl); CHECK(fid1, FAIL, "H5Fcreate"); /* Create dataspace for dataset */ @@ -665,7 +665,7 @@ test_attr_compound_write(void) ** ****************************************************************/ static void -test_attr_compound_read(void) +test_attr_compound_read(hid_t fapl) { hid_t fid1; /* HDF5 File IDs */ hid_t dataset; /* Dataset ID */ @@ -691,7 +691,7 @@ test_attr_compound_read(void) MESSAGE(5, ("Testing Basic Attribute Functions\n")); /* Open file */ - fid1 = H5Fopen(FILENAME, H5F_ACC_RDWR, H5P_DEFAULT); + fid1 = H5Fopen(FILENAME, H5F_ACC_RDWR, fapl); CHECK(fid1, FAIL, "H5Fopen"); /* Open the dataset */ @@ -812,7 +812,7 @@ test_attr_compound_read(void) ** ****************************************************************/ static void -test_attr_scalar_write(void) +test_attr_scalar_write(hid_t fapl) { hid_t fid1; /* HDF5 File IDs */ hid_t dataset; /* Dataset ID */ @@ -825,7 +825,7 @@ test_attr_scalar_write(void) MESSAGE(5, ("Testing Basic Attribute Functions\n")); /* Create file */ - fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl); CHECK(fid1, FAIL, "H5Fcreate"); /* Create dataspace for dataset */ @@ -876,7 +876,7 @@ test_attr_scalar_write(void) ** ****************************************************************/ static void -test_attr_scalar_read(void) +test_attr_scalar_read(hid_t fapl) { hid_t fid1; /* HDF5 File IDs */ hid_t dataset; /* Dataset ID */ @@ -890,7 +890,7 @@ test_attr_scalar_read(void) MESSAGE(5, ("Testing Basic Scalar Attribute Reading Functions\n")); /* Create file */ - fid1 = H5Fopen(FILENAME, H5F_ACC_RDWR, H5P_DEFAULT); + fid1 = H5Fopen(FILENAME, H5F_ACC_RDWR, fapl); CHECK(fid1, FAIL, "H5Fopen"); /* Open the dataset */ @@ -941,7 +941,7 @@ test_attr_scalar_read(void) ** ****************************************************************/ static void -test_attr_mult_write(void) +test_attr_mult_write(hid_t fapl) { hid_t fid1; /* HDF5 File IDs */ hid_t dataset; /* Dataset ID */ @@ -957,7 +957,7 @@ test_attr_mult_write(void) MESSAGE(5, ("Testing Multiple Attribute Functions\n")); /* Create file */ - fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + fid1 = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl); CHECK(fid1, FAIL, "H5Fcreate"); /* Create dataspace for dataset */ @@ -1059,7 +1059,7 @@ test_attr_mult_write(void) ** ****************************************************************/ static void -test_attr_mult_read(void) +test_attr_mult_read(hid_t fapl) { hid_t fid1; /* HDF5 File IDs */ hid_t dataset; /* Dataset ID */ @@ -1084,7 +1084,7 @@ test_attr_mult_read(void) MESSAGE(5, ("Testing Basic Attribute Functions\n")); /* Open file */ - fid1 = H5Fopen(FILENAME, H5F_ACC_RDWR, H5P_DEFAULT); + fid1 = H5Fopen(FILENAME, H5F_ACC_RDWR, fapl); CHECK(fid1, FAIL, "H5Fopen"); /* Open the dataset */ @@ -1315,7 +1315,7 @@ herr_t attr_op1(hid_t UNUSED loc_id, const char *name, void *op_data) ** ****************************************************************/ static void -test_attr_iterate(void) +test_attr_iterate(hid_t fapl) { hid_t file; /* HDF5 File ID */ hid_t dataset; /* Dataset ID */ @@ -1328,7 +1328,7 @@ test_attr_iterate(void) MESSAGE(5, ("Testing Basic Attribute Functions\n")); /* Open file */ - file = H5Fopen(FILENAME, H5F_ACC_RDWR, H5P_DEFAULT); + file = H5Fopen(FILENAME, H5F_ACC_RDWR, fapl); CHECK(file, FAIL, "H5Fopen"); /* Create a dataspace */ @@ -1386,7 +1386,7 @@ test_attr_iterate(void) ** ****************************************************************/ static void -test_attr_delete(void) +test_attr_delete(hid_t fapl) { hid_t fid1; /* HDF5 File ID */ hid_t dataset; /* Dataset ID */ @@ -1399,7 +1399,7 @@ test_attr_delete(void) MESSAGE(5, ("Testing Basic Attribute Functions\n")); /* Open file */ - fid1 = H5Fopen(FILENAME, H5F_ACC_RDWR, H5P_DEFAULT); + fid1 = H5Fopen(FILENAME, H5F_ACC_RDWR, fapl); CHECK(fid1, FAIL, "H5Fopen"); /* Open the dataset */ @@ -1500,7 +1500,7 @@ test_attr_delete(void) ** ****************************************************************/ static void -test_attr_dtype_shared(void) +test_attr_dtype_shared(hid_t fapl) { hid_t file_id; /* File ID */ hid_t dset_id; /* Dataset ID */ @@ -1518,7 +1518,7 @@ test_attr_dtype_shared(void) MESSAGE(5, ("Testing Shared Datatypes with Attributes\n")); /* Create a file */ - file_id=H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + file_id=H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl); CHECK(file_id, FAIL, "H5Fopen"); /* Close file */ @@ -1531,7 +1531,7 @@ test_attr_dtype_shared(void) TestErrPrintf("Line %d: file size wrong!\n",__LINE__); /* Re-open file */ - file_id=H5Fopen(FILENAME,H5F_ACC_RDWR,H5P_DEFAULT); + file_id=H5Fopen(FILENAME,H5F_ACC_RDWR,fapl); CHECK(file_id, FAIL, "H5Fopen"); /* Create a datatype to commit and use */ @@ -1616,7 +1616,7 @@ test_attr_dtype_shared(void) CHECK(ret, FAIL, "H5Fclose"); /* Re-open file */ - file_id=H5Fopen(FILENAME,H5F_ACC_RDWR,H5P_DEFAULT); + file_id=H5Fopen(FILENAME,H5F_ACC_RDWR,fapl); CHECK(file_id, FAIL, "H5Fopen"); /* Open dataset */ @@ -1675,33 +1675,70 @@ test_attr_dtype_shared(void) void test_attr(void) { + hid_t fapl = (-1), fapl2 = (-1); /* File access property lists */ + hbool_t new_format; /* Whether to use the new format or not */ + herr_t ret; /* Generic return value */ + /* Output message about test being performed */ MESSAGE(5, ("Testing Attributes\n")); - /* These next two tests use the same file information */ - test_attr_basic_write(); /* Test basic H5A writing code */ - test_attr_basic_read(); /* Test basic H5A reading code */ - test_attr_flush(); /* Test H5A I/O in the presence of H5Fflush calls */ - - /* This next test uses the same file information */ - test_attr_plist(); /* Test attribute property lists */ - - /* These next two tests use the same file information */ - test_attr_compound_write(); /* Test complex datatype H5A writing code */ - test_attr_compound_read(); /* Test complex datatype H5A reading code */ - - /* These next two tests use the same file information */ - test_attr_scalar_write(); /* Test scalar dataspace H5A writing code */ - test_attr_scalar_read(); /* Test scalar dataspace H5A reading code */ - - /* These next four tests use the same file information */ - test_attr_mult_write(); /* Test H5A writing code for multiple attributes */ - test_attr_mult_read(); /* Test H5A reading code for multiple attributes */ - test_attr_iterate(); /* Test H5A iterator code */ - test_attr_delete(); /* Test H5A code for deleting attributes */ - - /* This next test use the same file information */ - test_attr_dtype_shared(); /* Test using shared dataypes in attributes */ + /* Create a default file access property list */ + fapl = H5Pcreate(H5P_FILE_ACCESS); + CHECK(fapl, FAIL, "H5Pcreate"); + + /* Copy the file access property list */ + fapl2 = H5Pcopy(fapl); + CHECK(fapl2, FAIL, "H5Pcopy"); + + /* Set the "use the latest version of the format" flag for creating objects in the file */ + ret = H5Pset_latest_format(fapl2, TRUE); + CHECK(ret, FAIL, "H5Pset_latest_format"); + + /* Loop over using new group format */ + for(new_format = FALSE; new_format <= TRUE; new_format++) { + hid_t my_fapl; + + /* Set the FAPL for the type of format */ + if(new_format) { + MESSAGE(7, ("testing with new file format\n")); + my_fapl = fapl2; + } /* end if */ + else { + MESSAGE(7, ("testing with old file format\n")); + my_fapl = fapl; + } /* end else */ + + /* These next two tests use the same file information */ + test_attr_basic_write(my_fapl); /* Test basic H5A writing code */ + test_attr_basic_read(my_fapl); /* Test basic H5A reading code */ + test_attr_flush(my_fapl); /* Test H5A I/O in the presence of H5Fflush calls */ + + /* This next test uses the same file information */ + test_attr_plist(my_fapl); /* Test attribute property lists */ + + /* These next two tests use the same file information */ + test_attr_compound_write(my_fapl); /* Test complex datatype H5A writing code */ + test_attr_compound_read(my_fapl); /* Test complex datatype H5A reading code */ + + /* These next two tests use the same file information */ + test_attr_scalar_write(my_fapl); /* Test scalar dataspace H5A writing code */ + test_attr_scalar_read(my_fapl); /* Test scalar dataspace H5A reading code */ + + /* These next four tests use the same file information */ + test_attr_mult_write(my_fapl); /* Test H5A writing code for multiple attributes */ + test_attr_mult_read(my_fapl); /* Test H5A reading code for multiple attributes */ + test_attr_iterate(my_fapl); /* Test H5A iterator code */ + test_attr_delete(my_fapl); /* Test H5A code for deleting attributes */ + + /* This next test use the same file information */ + test_attr_dtype_shared(my_fapl); /* Test using shared dataypes in attributes */ + } /* end for */ + + /* Close FAPLs */ + ret = H5Pclose(fapl); + CHECK(ret, FAIL, "H5Pclose"); + ret = H5Pclose(fapl2); + CHECK(ret, FAIL, "H5Pclose"); } /* test_attr() */ diff --git a/test/unlink.c b/test/unlink.c index 908ea1d..cb66177 100644 --- a/test/unlink.c +++ b/test/unlink.c @@ -2486,6 +2486,9 @@ main(void) if(H5Fclose(file) < 0) TEST_ERROR } /* end for */ + /* Close 2nd FAPL */ + H5Pclose(fapl2); + if (nerrors) { printf("***** %d FAILURE%s! *****\n", nerrors, 1==nerrors?"":"S"); exit(1); |