diff options
-rw-r--r-- | src/H5A.c | 3 | ||||
-rw-r--r-- | src/H5Adense.c | 3 | ||||
-rw-r--r-- | src/H5Aint.c | 27 | ||||
-rw-r--r-- | src/H5Apkg.h | 2 | ||||
-rw-r--r-- | src/H5Oattr.c | 3 | ||||
-rw-r--r-- | src/H5Oattribute.c | 3 |
6 files changed, 22 insertions, 19 deletions
@@ -399,7 +399,8 @@ H5A_create(const H5G_loc_t *loc, const char *name, const H5T_t *type, attr->obj_opened = TRUE; /* Set the version to encode the attribute with */ - attr->version = H5A_get_version(attr->oloc.file, attr); + if(H5A_set_version(attr->oloc.file, attr) < 0) + HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "unable to update attribute version") /* Insert the attribute into the object header */ if(H5O_attr_create(&(attr->oloc), dxpl_id, attr) < 0) diff --git a/src/H5Adense.c b/src/H5Adense.c index 00628b4..8549a10 100644 --- a/src/H5Adense.c +++ b/src/H5Adense.c @@ -908,7 +908,8 @@ H5A_dense_rename(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, const char * attr_copy->name = H5MM_xstrdup(new_name); /* Recompute the version to encode the attribute with */ - attr_copy->version = H5A_get_version(f, attr_copy); + if(H5A_set_version(f, attr_copy) < 0) + HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, FAIL, "unable to update attribute version") /* Insert renamed attribute back into dense storage */ /* (Possibly making it shared) */ diff --git a/src/H5Aint.c b/src/H5Aint.c index f57bd6b..6293797 100644 --- a/src/H5Aint.c +++ b/src/H5Aint.c @@ -671,14 +671,14 @@ done: /*------------------------------------------------------------------------- - * Function: H5A_get_version + * Function: H5A_set_version * - * Purpose: Retrieves the correct version to encode attribute with. + * Purpose: Sets the correct version to encode attribute with. * Chooses the oldest version possible, unless the "use the * latest format" flag is set. * - * Return: Success: Version to encode attribute with. - * Failure: Can't fail + * Return: Success: Non-negative + * Failure: Negative * * Programmer: Quincey Koziol * koziol@hdfgroup.org @@ -686,14 +686,13 @@ done: * *------------------------------------------------------------------------- */ -unsigned -H5A_get_version(const H5F_t *f, const H5A_t *attr) +herr_t +H5A_set_version(const H5F_t *f, H5A_t *attr) { hbool_t type_shared, space_shared; /* Flags to indicate that shared messages are used for this attribute */ hbool_t use_latest_format; /* Flag indicating the newest file format should be used */ - unsigned ret_value; /* Return value */ - FUNC_ENTER_NOAPI_NOFUNC(H5A_get_version) + FUNC_ENTER_NOAPI_NOFUNC(H5A_set_version) /* check arguments */ HDassert(f); @@ -715,14 +714,14 @@ H5A_get_version(const H5F_t *f, const H5A_t *attr) /* Check which version to encode attribute with */ if(use_latest_format) - ret_value = H5O_ATTR_VERSION_LATEST; /* Write out latest version of format */ + attr->version = H5O_ATTR_VERSION_LATEST; /* Write out latest version of format */ else if(attr->encoding != H5T_CSET_ASCII) - ret_value = H5O_ATTR_VERSION_3; /* Write version which includes the character encoding */ + attr->version = H5O_ATTR_VERSION_3; /* Write version which includes the character encoding */ else if(type_shared || space_shared) - ret_value = H5O_ATTR_VERSION_2; /* Write out version with flag for indicating shared datatype or dataspace */ + attr->version = H5O_ATTR_VERSION_2; /* Write out version with flag for indicating shared datatype or dataspace */ else - ret_value = H5O_ATTR_VERSION_1; /* Write out basic version */ + attr->version = H5O_ATTR_VERSION_1; /* Write out basic version */ - FUNC_LEAVE_NOAPI(ret_value) -} /* end H5A_get_version() */ + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5A_set_version() */ diff --git a/src/H5Apkg.h b/src/H5Apkg.h index d1cc34c..99cfe5d 100644 --- a/src/H5Apkg.h +++ b/src/H5Apkg.h @@ -208,7 +208,7 @@ H5_DLL herr_t H5A_free(H5A_t *attr); H5_DLL herr_t H5A_close(H5A_t *attr); H5_DLL H5O_ainfo_t *H5A_get_ainfo(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5O_ainfo_t *ainfo); -H5_DLL unsigned H5A_get_version(const H5F_t *f, const H5A_t *attr); +H5_DLL herr_t H5A_set_version(const H5F_t *f, H5A_t *attr); /* Attribute "dense" storage routines */ H5_DLL herr_t H5A_dense_create(H5F_t *f, hid_t dxpl_id, H5O_ainfo_t *ainfo); diff --git a/src/H5Oattr.c b/src/H5Oattr.c index b1e5ed3..3e0b757 100644 --- a/src/H5Oattr.c +++ b/src/H5Oattr.c @@ -833,7 +833,8 @@ H5O_attr_copy_file(H5F_t UNUSED *file_src, const H5O_msg_class_t UNUSED *mesg_ty } /* end if(attr_src->data) */ /* Recompute the version to encode the destination attribute */ - attr_dst->version = H5A_get_version(file_dst, attr_dst); + if(H5A_set_version(file_dst, attr_dst) < 0) + HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, NULL, "unable to update attribute version") /* Indicate that the fill values aren't to be written out */ attr_dst->initialized = TRUE; diff --git a/src/H5Oattribute.c b/src/H5Oattribute.c index 2564386..aacf3a0 100644 --- a/src/H5Oattribute.c +++ b/src/H5Oattribute.c @@ -885,7 +885,8 @@ H5O_attr_rename_mod_cb(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/, ((H5A_t *)mesg->native)->name = H5MM_xstrdup(udata->new_name); /* Recompute the version to encode the attribute with */ - ((H5A_t *)mesg->native)->version = H5A_get_version(udata->f, ((H5A_t *)mesg->native)); + if(H5A_set_version(udata->f, ((H5A_t *)mesg->native)) < 0) + HGOTO_ERROR(H5E_ATTR, H5E_CANTSET, H5_ITER_ERROR, "unable to update attribute version") /* Mark message as dirty */ mesg->dirty = TRUE; |