Cleans up some HL library code that inappropriately returns htri_t values cast to herr_t (#1651)
* Cleans up some HL library code that inappropriately returns htri_t values cast to herr_t * Committing clang-format changes * Formatted source Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
172
hl/src/H5DS.c
172
hl/src/H5DS.c
@@ -17,7 +17,7 @@
|
||||
#include "H5TBprivate.h"
|
||||
|
||||
/* Local routines */
|
||||
static herr_t H5DS_is_reserved(hid_t did);
|
||||
static herr_t H5DS_is_reserved(hid_t did, hbool_t *is_reserved);
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5DSwith_new_ref
|
||||
@@ -73,7 +73,7 @@ H5DSwith_new_ref(hid_t obj_id, hbool_t *with_new_ref)
|
||||
herr_t
|
||||
H5DSset_scale(hid_t dsid, const char *dimname)
|
||||
{
|
||||
int has_dimlist;
|
||||
htri_t has_dimlist;
|
||||
H5I_type_t it;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -92,11 +92,10 @@ H5DSset_scale(hid_t dsid, const char *dimname)
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* try to find the attribute "DIMENSION_LIST" */
|
||||
if ((has_dimlist = H5LT_find_attribute(dsid, DIMENSION_LIST)) < 0)
|
||||
/* Try to find the attribute "DIMENSION_LIST" */
|
||||
if ((has_dimlist = H5Aexists(dsid, DIMENSION_LIST)) < 0)
|
||||
return FAIL;
|
||||
|
||||
if (has_dimlist == 1)
|
||||
if (has_dimlist > 0)
|
||||
return FAIL;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -139,8 +138,8 @@ H5DSset_scale(hid_t dsid, const char *dimname)
|
||||
herr_t
|
||||
H5DSattach_scale(hid_t did, hid_t dsid, unsigned int idx)
|
||||
{
|
||||
int has_dimlist;
|
||||
int has_reflist;
|
||||
htri_t has_dimlist;
|
||||
htri_t has_reflist;
|
||||
int is_ds;
|
||||
hssize_t nelmts;
|
||||
hid_t sid, sid_w; /* space ID */
|
||||
@@ -173,6 +172,7 @@ H5DSattach_scale(hid_t did, hid_t dsid, unsigned int idx)
|
||||
size_t len;
|
||||
int found_ds = 0;
|
||||
htri_t is_scale;
|
||||
hbool_t is_reserved;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* parameter checking
|
||||
@@ -221,12 +221,14 @@ H5DSattach_scale(hid_t did, hid_t dsid, unsigned int idx)
|
||||
if (H5I_DATASET != it1 || H5I_DATASET != it2)
|
||||
return FAIL;
|
||||
|
||||
/* the DS dataset cannot have dimension scales */
|
||||
if (H5LT_find_attribute(dsid, DIMENSION_LIST) == 1)
|
||||
/* The DS dataset cannot have dimension scales */
|
||||
if (H5Aexists(dsid, DIMENSION_LIST) > 0)
|
||||
return FAIL;
|
||||
|
||||
/* check if the dataset is a "reserved" dataset (image, table) */
|
||||
if (H5DS_is_reserved(did) == 1)
|
||||
/* Check if the dataset is a "reserved" dataset (image, table) */
|
||||
if (H5DS_is_reserved(did, &is_reserved) < 0)
|
||||
return FAIL;
|
||||
if (is_reserved == TRUE)
|
||||
return FAIL;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -279,8 +281,8 @@ H5DSattach_scale(hid_t did, hid_t dsid, unsigned int idx)
|
||||
if (H5Rcreate(&dsl.ref, did, ".", H5R_OBJECT, (hid_t)-1) < 0)
|
||||
return FAIL;
|
||||
}
|
||||
/* try to find the attribute "DIMENSION_LIST" on the >>data<< dataset */
|
||||
if ((has_dimlist = H5LT_find_attribute(did, DIMENSION_LIST)) < 0)
|
||||
/* Try to find the attribute "DIMENSION_LIST" on the >>data<< dataset */
|
||||
if ((has_dimlist = H5Aexists(did, DIMENSION_LIST)) < 0)
|
||||
return FAIL;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -354,7 +356,7 @@ H5DSattach_scale(hid_t did, hid_t dsid, unsigned int idx)
|
||||
* and insert the new reference
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
else if (has_dimlist == 1) {
|
||||
else if (has_dimlist > 0) {
|
||||
if ((aid = H5Aopen(did, DIMENSION_LIST, H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -469,7 +471,7 @@ H5DSattach_scale(hid_t did, hid_t dsid, unsigned int idx)
|
||||
*/
|
||||
|
||||
/* try to find the attribute "REFERENCE_LIST" on the >>DS<< dataset */
|
||||
if ((has_reflist = H5LT_find_attribute(dsid, REFERENCE_LIST)) < 0)
|
||||
if ((has_reflist = H5Aexists(dsid, REFERENCE_LIST)) < 0)
|
||||
goto out;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -530,7 +532,7 @@ H5DSattach_scale(hid_t did, hid_t dsid, unsigned int idx)
|
||||
* the "REFERENCE_LIST" array already exists, open it and extend it
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
else if (has_reflist == 1) {
|
||||
else if (has_reflist > 0) {
|
||||
hid_t tmp_id; /* Temporary DS dataset ID to recreate reference */
|
||||
int j;
|
||||
|
||||
@@ -727,8 +729,8 @@ out:
|
||||
herr_t
|
||||
H5DSdetach_scale(hid_t did, hid_t dsid, unsigned int idx)
|
||||
{
|
||||
int has_dimlist;
|
||||
int has_reflist;
|
||||
htri_t has_dimlist;
|
||||
htri_t has_reflist;
|
||||
hssize_t nelmts;
|
||||
hid_t dsid_j; /* DS dataset ID in DIMENSION_LIST */
|
||||
hid_t did_i; /* dataset ID in REFERENCE_LIST */
|
||||
@@ -804,10 +806,9 @@ H5DSdetach_scale(hid_t did, hid_t dsid, unsigned int idx)
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* try to find the attribute "DIMENSION_LIST" on the >>data<< dataset */
|
||||
if ((has_dimlist = H5LT_find_attribute(did, DIMENSION_LIST)) < 0)
|
||||
/* Try to find the attribute "DIMENSION_LIST" on the >>data<< dataset */
|
||||
if ((has_dimlist = H5Aexists(did, DIMENSION_LIST)) < 0)
|
||||
return FAIL;
|
||||
|
||||
if (has_dimlist == 0)
|
||||
return FAIL;
|
||||
|
||||
@@ -833,9 +834,8 @@ H5DSdetach_scale(hid_t did, hid_t dsid, unsigned int idx)
|
||||
*/
|
||||
|
||||
/* try to find the attribute "REFERENCE_LIST" on the >>DS<< dataset */
|
||||
if ((has_reflist = H5LT_find_attribute(dsid, REFERENCE_LIST)) < 0)
|
||||
if ((has_reflist = H5Aexists(dsid, REFERENCE_LIST)) < 0)
|
||||
return FAIL;
|
||||
|
||||
if (has_reflist == 0)
|
||||
return FAIL;
|
||||
|
||||
@@ -1228,8 +1228,8 @@ out:
|
||||
htri_t
|
||||
H5DSis_attached(hid_t did, hid_t dsid, unsigned int idx)
|
||||
{
|
||||
int has_dimlist;
|
||||
int has_reflist;
|
||||
htri_t has_dimlist;
|
||||
htri_t has_reflist;
|
||||
hssize_t nelmts;
|
||||
hid_t sid; /* space ID */
|
||||
hid_t tid = H5I_INVALID_HID; /* attribute type ID */
|
||||
@@ -1319,7 +1319,7 @@ H5DSis_attached(hid_t did, hid_t dsid, unsigned int idx)
|
||||
return FAIL;
|
||||
|
||||
/* try to find the attribute "DIMENSION_LIST" on the >>data<< dataset */
|
||||
if ((has_dimlist = H5LT_find_attribute(did, DIMENSION_LIST)) < 0)
|
||||
if ((has_dimlist = H5Aexists(did, DIMENSION_LIST)) < 0)
|
||||
return FAIL;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -1327,7 +1327,7 @@ H5DSis_attached(hid_t did, hid_t dsid, unsigned int idx)
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
if (has_dimlist == 1) {
|
||||
if (has_dimlist > 0) {
|
||||
if ((aid = H5Aopen(did, DIMENSION_LIST, H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -1407,7 +1407,7 @@ H5DSis_attached(hid_t did, hid_t dsid, unsigned int idx)
|
||||
*/
|
||||
|
||||
/* try to find the attribute "REFERENCE_LIST" on the >>DS<< dataset */
|
||||
if ((has_reflist = H5LT_find_attribute(dsid, REFERENCE_LIST)) < 0)
|
||||
if ((has_reflist = H5Aexists(dsid, REFERENCE_LIST)) < 0)
|
||||
goto out;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -1415,7 +1415,7 @@ H5DSis_attached(hid_t did, hid_t dsid, unsigned int idx)
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
if (has_reflist == 1) {
|
||||
if (has_reflist > 0) {
|
||||
if ((aid = H5Aopen(dsid, REFERENCE_LIST, H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -1610,7 +1610,7 @@ H5DSiterate_scales(hid_t did, unsigned int dim, int *ds_idx, H5DS_iterate_t visi
|
||||
herr_t ret_value = 0;
|
||||
int j_idx;
|
||||
int nscales;
|
||||
int has_dimlist;
|
||||
htri_t has_dimlist;
|
||||
int i;
|
||||
hbool_t is_new_ref;
|
||||
|
||||
@@ -1658,14 +1658,13 @@ H5DSiterate_scales(hid_t did, unsigned int dim, int *ds_idx, H5DS_iterate_t visi
|
||||
if (dim >= (unsigned)rank)
|
||||
return FAIL;
|
||||
|
||||
/* try to find the attribute "DIMENSION_LIST" on the >>data<< dataset */
|
||||
if ((has_dimlist = H5LT_find_attribute(did, DIMENSION_LIST)) < 0)
|
||||
/* Try to find the attribute "DIMENSION_LIST" on the >>data<< dataset */
|
||||
if ((has_dimlist = H5Aexists(did, DIMENSION_LIST)) < 0)
|
||||
return FAIL;
|
||||
|
||||
if (has_dimlist == 0)
|
||||
return SUCCEED;
|
||||
|
||||
else if (has_dimlist == 1) {
|
||||
else if (has_dimlist > 0) {
|
||||
if ((aid = H5Aopen(did, DIMENSION_LIST, H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
if ((tid = H5Aget_type(aid)) < 0)
|
||||
@@ -1788,7 +1787,7 @@ out:
|
||||
herr_t
|
||||
H5DSset_label(hid_t did, unsigned int idx, const char *label)
|
||||
{
|
||||
int has_labels;
|
||||
htri_t has_labels;
|
||||
hid_t sid = H5I_INVALID_HID; /* space ID */
|
||||
hid_t tid = H5I_INVALID_HID; /* attribute type ID */
|
||||
hid_t aid = H5I_INVALID_HID; /* attribute ID */
|
||||
@@ -1838,7 +1837,7 @@ H5DSset_label(hid_t did, unsigned int idx, const char *label)
|
||||
*/
|
||||
|
||||
/* try to find the attribute "DIMENSION_LABELS" on the >>data<< dataset */
|
||||
if ((has_labels = H5LT_find_attribute(did, DIMENSION_LABELS)) < 0)
|
||||
if ((has_labels = H5Aexists(did, DIMENSION_LABELS)) < 0)
|
||||
return FAIL;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -1991,7 +1990,7 @@ out:
|
||||
ssize_t
|
||||
H5DSget_label(hid_t did, unsigned int idx, char *label, size_t size)
|
||||
{
|
||||
int has_labels;
|
||||
htri_t has_labels;
|
||||
hid_t sid = H5I_INVALID_HID; /* space ID */
|
||||
hid_t tid = H5I_INVALID_HID; /* attribute type ID */
|
||||
hid_t aid = H5I_INVALID_HID; /* attribute ID */
|
||||
@@ -2033,11 +2032,11 @@ H5DSget_label(hid_t did, unsigned int idx, char *label, size_t size)
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* try to find the attribute "DIMENSION_LABELS" on the >>data<< dataset */
|
||||
if ((has_labels = H5LT_find_attribute(did, DIMENSION_LABELS)) < 0)
|
||||
/* Try to find the attribute "DIMENSION_LABELS" on the >>data<< dataset */
|
||||
if ((has_labels = H5Aexists(did, DIMENSION_LABELS)) < 0)
|
||||
return FAIL;
|
||||
|
||||
/* return 0 and NULL for label if no label found */
|
||||
/* Return 0 and NULL for label if no label found */
|
||||
if (has_labels == 0) {
|
||||
if (label)
|
||||
label[0] = 0;
|
||||
@@ -2049,7 +2048,6 @@ H5DSget_label(hid_t did, unsigned int idx, char *label, size_t size)
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
assert(has_labels == 1);
|
||||
if ((aid = H5Aopen(did, DIMENSION_LABELS, H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -2146,7 +2144,7 @@ H5DSget_scale_name(hid_t did, char *name, size_t size)
|
||||
H5I_type_t it; /* ID type */
|
||||
size_t nbytes;
|
||||
size_t copy_len;
|
||||
int has_name;
|
||||
htri_t has_name;
|
||||
char * buf = NULL;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -2169,9 +2167,8 @@ H5DSget_scale_name(hid_t did, char *name, size_t size)
|
||||
*/
|
||||
|
||||
/* try to find the attribute "NAME" on the >>DS<< dataset */
|
||||
if ((has_name = H5LT_find_attribute(did, "NAME")) < 0)
|
||||
if ((has_name = H5Aexists(did, "NAME")) < 0)
|
||||
return FAIL;
|
||||
|
||||
if (has_name == 0)
|
||||
return 0;
|
||||
|
||||
@@ -2259,7 +2256,7 @@ H5DSis_scale(hid_t did)
|
||||
{
|
||||
hid_t tid = H5I_INVALID_HID; /* attribute type ID */
|
||||
hid_t aid = H5I_INVALID_HID; /* attribute ID */
|
||||
herr_t attr_class; /* has the "CLASS" attribute */
|
||||
htri_t attr_class; /* has the "CLASS" attribute */
|
||||
htri_t is_ds = -1; /* set to "not a dimension scale" */
|
||||
H5I_type_t it; /* type of identifier */
|
||||
char * buf = NULL; /* buffer to read name of attribute */
|
||||
@@ -2279,7 +2276,7 @@ H5DSis_scale(hid_t did)
|
||||
goto out;
|
||||
|
||||
/* try to find the attribute "CLASS" on the dataset */
|
||||
if ((attr_class = H5LT_find_attribute(did, "CLASS")) < 0)
|
||||
if ((attr_class = H5Aexists(did, "CLASS")) < 0)
|
||||
goto out;
|
||||
|
||||
if (attr_class == 0) {
|
||||
@@ -2370,7 +2367,7 @@ out:
|
||||
int
|
||||
H5DSget_num_scales(hid_t did, unsigned int idx)
|
||||
{
|
||||
int has_dimlist;
|
||||
htri_t has_dimlist;
|
||||
hid_t sid; /* space ID */
|
||||
hid_t tid = H5I_INVALID_HID; /* attribute type ID */
|
||||
hid_t aid = H5I_INVALID_HID; /* attribute ID */
|
||||
@@ -2410,11 +2407,11 @@ H5DSget_num_scales(hid_t did, unsigned int idx)
|
||||
if (idx >= (unsigned int)rank)
|
||||
return FAIL;
|
||||
|
||||
/* try to find the attribute "DIMENSION_LIST" on the >>data<< dataset */
|
||||
if ((has_dimlist = H5LT_find_attribute(did, DIMENSION_LIST)) < 0)
|
||||
/* Try to find the attribute "DIMENSION_LIST" on the >>data<< dataset */
|
||||
if ((has_dimlist = H5Aexists(did, DIMENSION_LIST)) < 0)
|
||||
return FAIL;
|
||||
|
||||
/* it does not exist */
|
||||
/* No scales */
|
||||
if (has_dimlist == 0)
|
||||
return 0;
|
||||
|
||||
@@ -2475,86 +2472,77 @@ out:
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5DS_is_reserved
|
||||
*
|
||||
* Purpose: Verify that a dataset's CLASS is either an image, palette or table
|
||||
*
|
||||
* Return: true, false, fail
|
||||
*
|
||||
* Programmer: Pedro Vicente
|
||||
*
|
||||
* Date: March 19, 2005
|
||||
* Purpose: Verify that a dataset's CLASS is either an image, palette or
|
||||
* table
|
||||
*
|
||||
* Return: SUCCEED/FAIL
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
H5DS_is_reserved(hid_t did)
|
||||
H5DS_is_reserved(hid_t did, hbool_t *is_reserved)
|
||||
{
|
||||
int has_class;
|
||||
htri_t has_class;
|
||||
hid_t tid = H5I_INVALID_HID;
|
||||
hid_t aid = H5I_INVALID_HID;
|
||||
char * buf = NULL; /* Name of attribute */
|
||||
size_t string_size; /* Size of storage for attribute */
|
||||
herr_t ret;
|
||||
|
||||
/* try to find the attribute "CLASS" on the dataset */
|
||||
if ((has_class = H5LT_find_attribute(did, "CLASS")) < 0)
|
||||
return -1;
|
||||
/* Try to find the attribute "CLASS" on the dataset */
|
||||
if ((has_class = H5Aexists(did, "CLASS")) < 0)
|
||||
return FAIL;
|
||||
if (has_class == 0) {
|
||||
*is_reserved = FALSE;
|
||||
return SUCCEED;
|
||||
}
|
||||
|
||||
if (has_class == 0)
|
||||
return 0;
|
||||
|
||||
assert(has_class == 1);
|
||||
if ((aid = H5Aopen(did, "CLASS", H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
|
||||
goto error;
|
||||
if ((tid = H5Aget_type(aid)) < 0)
|
||||
goto out;
|
||||
goto error;
|
||||
|
||||
/* check to make sure attribute is a string */
|
||||
/* Check to make sure attribute is a string */
|
||||
if (H5T_STRING != H5Tget_class(tid))
|
||||
goto out;
|
||||
goto error;
|
||||
|
||||
/* check to make sure string is null-terminated */
|
||||
/* Check to make sure string is null-terminated */
|
||||
if (H5T_STR_NULLTERM != H5Tget_strpad(tid))
|
||||
goto out;
|
||||
goto error;
|
||||
|
||||
/* allocate buffer large enough to hold string */
|
||||
/* Allocate buffer large enough to hold string */
|
||||
if ((string_size = H5Tget_size(tid)) == 0)
|
||||
goto out;
|
||||
|
||||
buf = (char *)HDmalloc((size_t)string_size * sizeof(char));
|
||||
if (buf == NULL)
|
||||
goto out;
|
||||
goto error;
|
||||
if (NULL == (buf = HDmalloc(string_size * sizeof(char))))
|
||||
goto error;
|
||||
|
||||
/* Read the attribute */
|
||||
if (H5Aread(aid, tid, buf) < 0)
|
||||
goto out;
|
||||
goto error;
|
||||
|
||||
if (HDstrncmp(buf, IMAGE_CLASS, MIN(HDstrlen(IMAGE_CLASS), HDstrlen(buf))) == 0 ||
|
||||
HDstrncmp(buf, PALETTE_CLASS, MIN(HDstrlen(PALETTE_CLASS), HDstrlen(buf))) == 0 ||
|
||||
HDstrncmp(buf, TABLE_CLASS, MIN(HDstrlen(TABLE_CLASS), HDstrlen(buf))) == 0)
|
||||
ret = 1;
|
||||
*is_reserved = TRUE;
|
||||
else
|
||||
ret = 0;
|
||||
*is_reserved = FALSE;
|
||||
|
||||
HDfree(buf);
|
||||
|
||||
if (H5Tclose(tid) < 0)
|
||||
goto out;
|
||||
|
||||
goto error;
|
||||
if (H5Aclose(aid) < 0)
|
||||
goto out;
|
||||
goto error;
|
||||
|
||||
return ret;
|
||||
return SUCCEED;
|
||||
|
||||
/* error zone */
|
||||
out:
|
||||
error:
|
||||
H5E_BEGIN_TRY
|
||||
{
|
||||
if (buf)
|
||||
HDfree(buf);
|
||||
H5Tclose(tid);
|
||||
H5Aclose(aid);
|
||||
}
|
||||
H5E_END_TRY;
|
||||
|
||||
HDfree(buf);
|
||||
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
@@ -228,7 +228,6 @@ H5IM_find_palette(hid_t loc_id)
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
herr_t
|
||||
H5IMget_image_info(hid_t loc_id, const char *dset_name, hsize_t *width, hsize_t *height, hsize_t *planes,
|
||||
char *interlace, hssize_t *npals)
|
||||
@@ -241,7 +240,7 @@ H5IMget_image_info(hid_t loc_id, const char *dset_name, hsize_t *width, hsize_t
|
||||
hid_t atid = -1;
|
||||
H5T_class_t aclass;
|
||||
int has_pal;
|
||||
int has_attr;
|
||||
hid_t has_attr;
|
||||
|
||||
/* check the arguments */
|
||||
if (dset_name == NULL)
|
||||
@@ -257,11 +256,11 @@ H5IMget_image_info(hid_t loc_id, const char *dset_name, hsize_t *width, hsize_t
|
||||
return -1;
|
||||
|
||||
/* Try to find the attribute "INTERLACE_MODE" on the >>image<< dataset */
|
||||
if ((has_attr = H5LT_find_attribute(did, "INTERLACE_MODE")) < 0)
|
||||
if ((has_attr = H5Aexists(did, "INTERLACE_MODE")) < 0)
|
||||
goto out;
|
||||
|
||||
/* It exists, get it */
|
||||
if (has_attr == 1) {
|
||||
if (has_attr > 0) {
|
||||
|
||||
if ((aid = H5Aopen(did, "INTERLACE_MODE", H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
@@ -289,9 +288,8 @@ H5IMget_image_info(hid_t loc_id, const char *dset_name, hsize_t *width, hsize_t
|
||||
|
||||
/* Initialize the image dimensions */
|
||||
|
||||
if (has_attr == 1)
|
||||
/* This is a 24 bit image */
|
||||
{
|
||||
if (has_attr > 0) {
|
||||
/* This is a 24 bit image */
|
||||
|
||||
if (HDstrncmp(interlace, "INTERLACE_PIXEL", 15) == 0) {
|
||||
/* Number of color planes is defined as the third dimension */
|
||||
@@ -308,9 +306,8 @@ H5IMget_image_info(hid_t loc_id, const char *dset_name, hsize_t *width, hsize_t
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
/* This is a 8 bit image */
|
||||
{
|
||||
else {
|
||||
/* This is a 8 bit image */
|
||||
*height = dims[0];
|
||||
*width = dims[1];
|
||||
*planes = 1;
|
||||
@@ -512,7 +509,7 @@ H5IMlink_palette(hid_t loc_id, const char *image_name, const char *pal_name)
|
||||
hobj_ref_t *refbuf; /* buffer to read references */
|
||||
hssize_t n_refs;
|
||||
hsize_t dim_ref;
|
||||
int ok_pal;
|
||||
htri_t ok_pal;
|
||||
|
||||
/* check the arguments */
|
||||
if (image_name == NULL)
|
||||
@@ -531,7 +528,8 @@ H5IMlink_palette(hid_t loc_id, const char *image_name, const char *pal_name)
|
||||
return -1;
|
||||
|
||||
/* Try to find the attribute "PALETTE" on the >>image<< dataset */
|
||||
ok_pal = H5LT_find_attribute(did, "PALETTE");
|
||||
if ((ok_pal = H5Aexists(did, "PALETTE")) < 0)
|
||||
goto out;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* It does not exist. We create the attribute and one reference
|
||||
@@ -570,7 +568,7 @@ H5IMlink_palette(hid_t loc_id, const char *image_name, const char *pal_name)
|
||||
* The attribute already exists, open it
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
else if (ok_pal == 1) {
|
||||
else if (ok_pal > 0) {
|
||||
if ((aid = H5Aopen(did, "PALETTE", H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -631,7 +629,7 @@ H5IMlink_palette(hid_t loc_id, const char *image_name, const char *pal_name)
|
||||
|
||||
HDfree(refbuf);
|
||||
|
||||
} /* ok_pal == 1 */
|
||||
} /* ok_pal > 0 */
|
||||
|
||||
/* Close the image dataset. */
|
||||
if (H5Dclose(did) < 0)
|
||||
@@ -673,7 +671,8 @@ H5IMunlink_palette(hid_t loc_id, const char *image_name, const char *pal_name)
|
||||
hid_t atid;
|
||||
hid_t aid;
|
||||
H5T_class_t aclass;
|
||||
int ok_pal, has_pal;
|
||||
htri_t ok_pal;
|
||||
int has_pal;
|
||||
|
||||
/* check the arguments */
|
||||
if (image_name == NULL)
|
||||
@@ -699,14 +698,14 @@ H5IMunlink_palette(hid_t loc_id, const char *image_name, const char *pal_name)
|
||||
return -1;
|
||||
|
||||
/* Try to find the attribute "PALETTE" on the >>image<< dataset */
|
||||
ok_pal = H5LT_find_attribute(did, "PALETTE");
|
||||
if ((ok_pal = H5Aexists(did, "PALETTE")) < 0)
|
||||
goto out;
|
||||
|
||||
/* It does not exist. Nothing to do */
|
||||
if (ok_pal == 0)
|
||||
return -1;
|
||||
|
||||
/* The attribute exists, open it */
|
||||
else if (ok_pal == 1) {
|
||||
goto out;
|
||||
else if (ok_pal > 0) {
|
||||
/* The attribute exists, open it */
|
||||
if ((aid = H5Aopen(did, "PALETTE", H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -730,8 +729,7 @@ H5IMunlink_palette(hid_t loc_id, const char *image_name, const char *pal_name)
|
||||
/* Close the attribute. */
|
||||
if (H5Aclose(aid) < 0)
|
||||
goto out;
|
||||
|
||||
} /* ok_pal */
|
||||
}
|
||||
|
||||
/* Close the image dataset. */
|
||||
if (H5Dclose(did) < 0)
|
||||
@@ -1063,7 +1061,7 @@ herr_t
|
||||
H5IMis_image(hid_t loc_id, const char *dset_name)
|
||||
{
|
||||
hid_t did;
|
||||
int has_class;
|
||||
htri_t has_class;
|
||||
hid_t atid;
|
||||
hid_t aid = -1;
|
||||
char * attr_data; /* Name of attribute */
|
||||
@@ -1082,13 +1080,14 @@ H5IMis_image(hid_t loc_id, const char *dset_name)
|
||||
return -1;
|
||||
|
||||
/* Try to find the attribute "CLASS" on the dataset */
|
||||
has_class = H5LT_find_attribute(did, "CLASS");
|
||||
if ((has_class = H5Aexists(did, "CLASS")) < 0)
|
||||
goto out;
|
||||
|
||||
if (has_class == 0) {
|
||||
H5Dclose(did);
|
||||
return 0;
|
||||
}
|
||||
else if (has_class == 1) {
|
||||
else {
|
||||
|
||||
if ((aid = H5Aopen(did, "CLASS", H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
@@ -1163,7 +1162,7 @@ herr_t
|
||||
H5IMis_palette(hid_t loc_id, const char *dset_name)
|
||||
{
|
||||
hid_t did;
|
||||
int has_class;
|
||||
htri_t has_class;
|
||||
hid_t atid;
|
||||
hid_t aid = -1;
|
||||
char * attr_data; /* Name of attribute */
|
||||
@@ -1182,13 +1181,14 @@ H5IMis_palette(hid_t loc_id, const char *dset_name)
|
||||
return -1;
|
||||
|
||||
/* Try to find the attribute "CLASS" on the dataset */
|
||||
has_class = H5LT_find_attribute(did, "CLASS");
|
||||
if ((has_class = H5Aexists(did, "CLASS")) < 0)
|
||||
goto out;
|
||||
|
||||
if (has_class == 0) {
|
||||
H5Dclose(did);
|
||||
return 0;
|
||||
}
|
||||
else if (has_class == 1) {
|
||||
else {
|
||||
|
||||
if ((aid = H5Aopen(did, "CLASS", H5P_DEFAULT)) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -1385,7 +1385,6 @@ H5_GCC_CLANG_DIAG_ON("cast-qual")
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
herr_t
|
||||
H5LTset_attribute_string(hid_t loc_id, const char *obj_name, const char *attr_name, const char *attr_data)
|
||||
{
|
||||
@@ -1393,7 +1392,7 @@ H5LTset_attribute_string(hid_t loc_id, const char *obj_name, const char *attr_na
|
||||
hid_t attr_space_id;
|
||||
hid_t attr_id;
|
||||
hid_t obj_id;
|
||||
int has_attr;
|
||||
htri_t has_attr;
|
||||
size_t attr_size;
|
||||
|
||||
/* check the arguments */
|
||||
@@ -1423,11 +1422,10 @@ H5LTset_attribute_string(hid_t loc_id, const char *obj_name, const char *attr_na
|
||||
if ((attr_space_id = H5Screate(H5S_SCALAR)) < 0)
|
||||
goto out;
|
||||
|
||||
/* Verify if the attribute already exists */
|
||||
has_attr = H5LT_find_attribute(obj_id, attr_name);
|
||||
|
||||
/* The attribute already exists, delete it */
|
||||
if (has_attr == 1)
|
||||
/* Delete the attribute if it already exists */
|
||||
if ((has_attr = H5Aexists(obj_id, attr_name)) < 0)
|
||||
goto out;
|
||||
if (has_attr > 0)
|
||||
if (H5Adelete(obj_id, attr_name) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -1483,7 +1481,7 @@ H5LT_set_attribute_numerical(hid_t loc_id, const char *obj_name, const char *att
|
||||
|
||||
hid_t obj_id, sid, attr_id;
|
||||
hsize_t dim_size = size;
|
||||
int has_attr;
|
||||
htri_t has_attr;
|
||||
|
||||
/* check the arguments */
|
||||
if (obj_name == NULL)
|
||||
@@ -1499,11 +1497,10 @@ H5LT_set_attribute_numerical(hid_t loc_id, const char *obj_name, const char *att
|
||||
if ((sid = H5Screate_simple(1, &dim_size, NULL)) < 0)
|
||||
goto out;
|
||||
|
||||
/* Verify if the attribute already exists */
|
||||
has_attr = H5LT_find_attribute(obj_id, attr_name);
|
||||
|
||||
/* The attribute already exists, delete it */
|
||||
if (has_attr == 1)
|
||||
/* Delete the attribute if it already exists */
|
||||
if ((has_attr = H5Aexists(obj_id, attr_name)) < 0)
|
||||
goto out;
|
||||
if (has_attr > 0)
|
||||
if (H5Adelete(obj_id, attr_name) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -1858,49 +1855,24 @@ H5LTset_attribute_double(hid_t loc_id, const char *obj_name, const char *attr_na
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5LTfind_attribute
|
||||
*
|
||||
* Purpose: Inquires if an attribute named attr_name exists attached to
|
||||
* the object loc_id.
|
||||
* Purpose: Checks if an attribute named attr_name exists attached to
|
||||
* the object loc_id
|
||||
*
|
||||
* Programmer: Pedro Vicente
|
||||
*
|
||||
* Date: May 17, 2006
|
||||
*
|
||||
* Comments:
|
||||
* Calls the private version of the function
|
||||
* TODO: Overloading herr_t is not a great idea. This function either
|
||||
* needs to be rewritten to take a Boolean out parameter in
|
||||
* HDF5 2.0 or possibly even eliminated entirely as it simply
|
||||
* wraps H5Aexists.
|
||||
*
|
||||
* Return: An htri_t value cast to herr_t
|
||||
* Exists: Positive
|
||||
* Does not exist: 0
|
||||
* Error: Negative
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
herr_t
|
||||
H5LTfind_attribute(hid_t loc_id, const char *attr_name)
|
||||
{
|
||||
return H5LT_find_attribute(loc_id, attr_name);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5LT_find_attribute
|
||||
*
|
||||
* Purpose: Inquires if an attribute named attr_name exists attached to the object loc_id.
|
||||
*
|
||||
* Programmer: Pedro Vicente
|
||||
*
|
||||
* Date: June 21, 2001
|
||||
*
|
||||
* Return:
|
||||
* Success: Positive if the attribute exists attached to the
|
||||
* object loc_id. Zero if the attribute does not
|
||||
* exist attached to the object loc_id.
|
||||
*
|
||||
* Failure: Negative if something goes wrong within the
|
||||
* library.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5LT_find_attribute(hid_t loc_id, const char *attr_name)
|
||||
{
|
||||
htri_t attr_exists = H5Aexists(loc_id, attr_name);
|
||||
return (attr_exists < 0) ? (herr_t)-1 : (attr_exists) ? (herr_t)1 : (herr_t)0;
|
||||
return (herr_t)H5Aexists(loc_id, attr_name);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@@ -3539,14 +3511,13 @@ H5LT_set_attribute_string(hid_t dset_id, const char *name, const char *buf)
|
||||
hid_t tid;
|
||||
hid_t sid = -1;
|
||||
hid_t aid = -1;
|
||||
int has_attr;
|
||||
htri_t has_attr;
|
||||
size_t size;
|
||||
|
||||
/* verify if the attribute already exists */
|
||||
has_attr = H5LT_find_attribute(dset_id, name);
|
||||
|
||||
/* the attribute already exists, delete it */
|
||||
if (has_attr == 1)
|
||||
/* Delete the attribute if it already exists */
|
||||
if ((has_attr = H5Aexists(dset_id, name)) < 0)
|
||||
return FAIL;
|
||||
if (has_attr > 0)
|
||||
if (H5Adelete(dset_id, name) < 0)
|
||||
return FAIL;
|
||||
|
||||
|
||||
@@ -20,23 +20,12 @@
|
||||
/* public LT prototypes */
|
||||
#include "H5LTpublic.h"
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Private functions
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
H5_HLDLL herr_t H5LT_get_attribute_disk(hid_t obj_id, const char *attr_name, void *data);
|
||||
|
||||
H5_HLDLL herr_t H5LT_set_attribute_numerical(hid_t loc_id, const char *obj_name, const char *attr_name,
|
||||
size_t size, hid_t type_id, const void *data);
|
||||
|
||||
H5_HLDLL herr_t H5LT_set_attribute_string(hid_t dset_id, const char *name, const char *buf);
|
||||
|
||||
H5_HLDLL herr_t H5LT_find_attribute(hid_t loc_id, const char *name);
|
||||
|
||||
H5_HLDLL char *H5LT_dtype_to_text(hid_t dtype, char *dt_str, H5LT_lang_t lang, size_t *slen,
|
||||
hbool_t no_user_buf);
|
||||
|
||||
H5_HLDLL hid_t H5LTyyparse(void);
|
||||
H5_HLDLL char * H5LT_dtype_to_text(hid_t dtype, char *dt_str, H5LT_lang_t lang, size_t *slen,
|
||||
hbool_t no_user_buf);
|
||||
H5_HLDLL hid_t H5LTyyparse(void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2585,11 +2585,11 @@ H5TBdelete_field(hid_t loc_id, const char *dset_name, const char *field_name)
|
||||
HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_FILL", (int)i);
|
||||
|
||||
/* check if we have the _FILL attribute */
|
||||
if ((has_fill = H5LT_find_attribute(did_1, attr_name)) < 0)
|
||||
if ((has_fill = H5Aexists(did_1, attr_name)) < 0)
|
||||
goto out;
|
||||
|
||||
/* get it */
|
||||
if (has_fill)
|
||||
if (has_fill > 0)
|
||||
if (H5LT_get_attribute_disk(did_1, attr_name, tmp_fill_buf + curr_offset) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -2747,7 +2747,7 @@ H5TBdelete_field(hid_t loc_id, const char *dset_name, const char *field_name)
|
||||
* attach the fill attributes from previous table
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
if (has_fill) {
|
||||
if (has_fill > 0) {
|
||||
if ((sid_1 = H5Screate(H5S_SCALAR)) < 0)
|
||||
goto out;
|
||||
|
||||
@@ -2918,15 +2918,15 @@ H5TBAget_fill(hid_t loc_id, const char *dset_name, hid_t dset_id, unsigned char
|
||||
for (i = 0; i < nfields; i++) {
|
||||
HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_FILL", (int)i);
|
||||
|
||||
/* check if we have the _FILL attribute */
|
||||
if ((has_fill = H5LT_find_attribute(dset_id, attr_name)) < 0)
|
||||
/* Check if we have the _FILL attribute */
|
||||
if ((has_fill = H5Aexists(dset_id, attr_name)) < 0)
|
||||
goto out;
|
||||
|
||||
/* get it */
|
||||
if (has_fill)
|
||||
if (has_fill > 0)
|
||||
if (H5LT_get_attribute_disk(dset_id, attr_name, dst_buf + src_offset[i]) < 0)
|
||||
goto out;
|
||||
} /* end for */
|
||||
}
|
||||
|
||||
ret_val = has_fill;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user