summaryrefslogtreecommitdiffstats
path: root/hl/fortran/src/H5IMcc.c
diff options
context:
space:
mode:
Diffstat (limited to 'hl/fortran/src/H5IMcc.c')
-rw-r--r--hl/fortran/src/H5IMcc.c567
1 files changed, 273 insertions, 294 deletions
diff --git a/hl/fortran/src/H5IMcc.c b/hl/fortran/src/H5IMcc.c
index 639c27e..593a2da 100644
--- a/hl/fortran/src/H5IMcc.c
+++ b/hl/fortran/src/H5IMcc.c
@@ -6,7 +6,7 @@
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
- * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -16,16 +16,11 @@
#include <string.h>
#include <stdlib.h>
-
/*-------------------------------------------------------------------------
* private functions
*-------------------------------------------------------------------------
*/
-herr_t H5IM_get_palette(hid_t loc_id,
- const char *image_name,
- int pal_number,
- hid_t tid,
- void *pal_data);
+herr_t H5IM_get_palette(hid_t loc_id, const char *image_name, int pal_number, hid_t tid, void *pal_data);
/*-------------------------------------------------------------------------
* Function: H5IMmake_image_8bitf
@@ -48,77 +43,76 @@ herr_t H5IM_get_palette(hid_t loc_id,
*-------------------------------------------------------------------------
*/
-herr_t H5IMmake_image_8bitf(hid_t loc_id,
- const char *dset_name,
- hsize_t width,
- hsize_t height,
- int_f *buf)
+herr_t
+H5IMmake_image_8bitf(hid_t loc_id, const char *dset_name, hsize_t width, hsize_t height, int_f *buf)
{
- hid_t did; /* dataset ID */
- hid_t sid; /* space ID */
- hsize_t dims[IMAGE8_RANK]; /* dimensions */
+ hid_t did; /* dataset ID */
+ hid_t sid; /* space ID */
+ hsize_t dims[IMAGE8_RANK]; /* dimensions */
- /* initialize the image dimensions */
- dims[0] = height;
- dims[1] = width;
+ /* initialize the image dimensions */
+ dims[0] = height;
+ dims[1] = width;
-/*-------------------------------------------------------------------------
- * create and write the dataset
- *-------------------------------------------------------------------------
- */
+ /*-------------------------------------------------------------------------
+ * create and write the dataset
+ *-------------------------------------------------------------------------
+ */
- /* create the data space for the dataset. */
- if((sid = H5Screate_simple(IMAGE8_RANK, dims, NULL)) < 0)
- return -1;
-
- /* create the dataset as H5T_NATIVE_UCHAR */
- if((did = H5Dcreate2(loc_id, dset_name, H5T_NATIVE_UINT8, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0)
- return -1;
-
- /* write with memory type H5T_NATIVE_INT */
- /* Use long type if Fortran integer is 8 bytes and C long long is also 8 bytes*/
- /* Fail if otherwise */
- if(buf) {
- if(sizeof(int_f) == sizeof(int)) {
- if(H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
- return -1;
- } else if(sizeof(int_f) == sizeof(long)) {
- if(H5Dwrite(did, H5T_NATIVE_LONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
- return -1;
- } else if(sizeof(int_f) == sizeof(long long)) {
- if(H5Dwrite(did, H5T_NATIVE_LLONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
- return -1;
- } else
- return -1;
- }
-
- /* close */
- if(H5Dclose(did) < 0)
- return -1;
- if(H5Sclose(sid) < 0)
- return -1;
+ /* create the data space for the dataset. */
+ if ((sid = H5Screate_simple(IMAGE8_RANK, dims, NULL)) < 0)
+ return -1;
-/*-------------------------------------------------------------------------
- * attach the specification attributes
- *-------------------------------------------------------------------------
- */
+ /* create the dataset as H5T_NATIVE_UCHAR */
+ if ((did = H5Dcreate2(loc_id, dset_name, H5T_NATIVE_UINT8, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) <
+ 0)
+ return -1;
- /* attach the CLASS attribute */
- if(H5LTset_attribute_string(loc_id, dset_name, "CLASS", IMAGE_CLASS) < 0)
- return -1;
+ /* write with memory type H5T_NATIVE_INT */
+ /* Use long type if Fortran integer is 8 bytes and C long long is also 8 bytes*/
+ /* Fail if otherwise */
+ if (buf) {
+ if (sizeof(int_f) == sizeof(int)) {
+ if (H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
+ return -1;
+ }
+ else if (sizeof(int_f) == sizeof(long)) {
+ if (H5Dwrite(did, H5T_NATIVE_LONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
+ return -1;
+ }
+ else if (sizeof(int_f) == sizeof(long long)) {
+ if (H5Dwrite(did, H5T_NATIVE_LLONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
+ return -1;
+ }
+ else
+ return -1;
+ }
- /* attach the VERSION attribute */
- if(H5LTset_attribute_string(loc_id, dset_name, "IMAGE_VERSION", IMAGE_VERSION) < 0)
- return -1;
+ /* close */
+ if (H5Dclose(did) < 0)
+ return -1;
+ if (H5Sclose(sid) < 0)
+ return -1;
- /* attach the IMAGE_SUBCLASS attribute */
- if(H5LTset_attribute_string(loc_id, dset_name, "IMAGE_SUBCLASS", "IMAGE_INDEXED") < 0)
- return -1;
+ /*-------------------------------------------------------------------------
+ * attach the specification attributes
+ *-------------------------------------------------------------------------
+ */
- return 0;
-}
+ /* attach the CLASS attribute */
+ if (H5LTset_attribute_string(loc_id, dset_name, "CLASS", IMAGE_CLASS) < 0)
+ return -1;
+ /* attach the VERSION attribute */
+ if (H5LTset_attribute_string(loc_id, dset_name, "IMAGE_VERSION", IMAGE_VERSION) < 0)
+ return -1;
+
+ /* attach the IMAGE_SUBCLASS attribute */
+ if (H5LTset_attribute_string(loc_id, dset_name, "IMAGE_SUBCLASS", "IMAGE_INDEXED") < 0)
+ return -1;
+ return 0;
+}
/*-------------------------------------------------------------------------
* Function: H5IMmake_image_24bitf
@@ -146,96 +140,94 @@ herr_t H5IMmake_image_8bitf(hid_t loc_id,
*-------------------------------------------------------------------------
*/
-herr_t H5IMmake_image_24bitf(hid_t loc_id,
- const char *dset_name,
- hsize_t width,
- hsize_t height,
- const char *interlace,
- int_f *buf)
+herr_t
+H5IMmake_image_24bitf(hid_t loc_id, const char *dset_name, hsize_t width, hsize_t height,
+ const char *interlace, int_f *buf)
{
- hid_t did; /* dataset ID */
- hid_t sid; /* space ID */
- hsize_t dims[IMAGE24_RANK]; /* dimensions */
+ hid_t did; /* dataset ID */
+ hid_t sid; /* space ID */
+ hsize_t dims[IMAGE24_RANK]; /* dimensions */
+
+ /*-------------------------------------------------------------------------
+ * attach the image dimensions according to the interlace mode
+ *-------------------------------------------------------------------------
+ */
+ if (strcmp(interlace, "INTERLACE_PIXEL") == 0) {
+ /* Number of color planes is defined as the third dimension */
+ dims[0] = height;
+ dims[1] = width;
+ dims[2] = IMAGE24_RANK;
+ }
+ else if (strcmp(interlace, "INTERLACE_PLANE") == 0) {
+ /* Number of color planes is defined as the first dimension */
+ dims[0] = IMAGE24_RANK;
+ dims[1] = height;
+ dims[2] = width;
+ }
+ else
+ return -1;
-/*-------------------------------------------------------------------------
- * attach the image dimensions according to the interlace mode
- *-------------------------------------------------------------------------
- */
- if(strcmp(interlace, "INTERLACE_PIXEL") == 0) {
- /* Number of color planes is defined as the third dimension */
- dims[0] = height;
- dims[1] = width;
- dims[2] = IMAGE24_RANK;
- }
- else
- if(strcmp(interlace, "INTERLACE_PLANE") == 0) {
- /* Number of color planes is defined as the first dimension */
- dims[0] = IMAGE24_RANK;
- dims[1] = height;
- dims[2] = width;
- }
- else
- return -1;
+ /*-------------------------------------------------------------------------
+ * create and write the dataset
+ *-------------------------------------------------------------------------
+ */
-/*-------------------------------------------------------------------------
- * create and write the dataset
- *-------------------------------------------------------------------------
- */
+ /* create the data space for the dataset. */
+ if ((sid = H5Screate_simple(IMAGE24_RANK, dims, NULL)) < 0)
+ return -1;
- /* create the data space for the dataset. */
- if((sid = H5Screate_simple(IMAGE24_RANK, dims, NULL)) < 0)
- return -1;
-
- /* create the dataset as H5T_NATIVE_UCHAR */
- if((did = H5Dcreate2(loc_id, dset_name, H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0)
- return -1;
-
- /* write with memory type H5T_NATIVE_INT */
- if(buf) {
- if(sizeof(int_f) == sizeof(int)) {
- if(H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
- return -1;
- } else if(sizeof(int_f) == sizeof(long)) {
- if(H5Dwrite(did, H5T_NATIVE_LONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
- return -1;
- } else if(sizeof(int_f) == sizeof(long long)) {
- if(H5Dwrite(did, H5T_NATIVE_LLONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
- return -1;
- } else
- return -1;
- }
-
- /* close */
- if(H5Dclose(did) < 0)
- return -1;
- if(H5Sclose(sid) < 0)
- return -1;
+ /* create the dataset as H5T_NATIVE_UCHAR */
+ if ((did = H5Dcreate2(loc_id, dset_name, H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) <
+ 0)
+ return -1;
-/*-------------------------------------------------------------------------
- * attach the specification attributes
- *-------------------------------------------------------------------------
- */
+ /* write with memory type H5T_NATIVE_INT */
+ if (buf) {
+ if (sizeof(int_f) == sizeof(int)) {
+ if (H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
+ return -1;
+ }
+ else if (sizeof(int_f) == sizeof(long)) {
+ if (H5Dwrite(did, H5T_NATIVE_LONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
+ return -1;
+ }
+ else if (sizeof(int_f) == sizeof(long long)) {
+ if (H5Dwrite(did, H5T_NATIVE_LLONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
+ return -1;
+ }
+ else
+ return -1;
+ }
- /* Attach the CLASS attribute */
- if(H5LTset_attribute_string(loc_id, dset_name, "CLASS", IMAGE_CLASS) < 0)
- return -1;
+ /* close */
+ if (H5Dclose(did) < 0)
+ return -1;
+ if (H5Sclose(sid) < 0)
+ return -1;
- /* Attach the VERSION attribute */
- if(H5LTset_attribute_string(loc_id, dset_name, "IMAGE_VERSION", IMAGE_VERSION) < 0)
- return -1;
+ /*-------------------------------------------------------------------------
+ * attach the specification attributes
+ *-------------------------------------------------------------------------
+ */
- /* Attach the IMAGE_SUBCLASS attribute */
- if(H5LTset_attribute_string(loc_id, dset_name, "IMAGE_SUBCLASS", "IMAGE_TRUECOLOR") < 0)
- return -1;
+ /* Attach the CLASS attribute */
+ if (H5LTset_attribute_string(loc_id, dset_name, "CLASS", IMAGE_CLASS) < 0)
+ return -1;
- /* Attach the INTERLACE_MODE attribute. This attributes is only for true color images */
- if(H5LTset_attribute_string(loc_id, dset_name, "INTERLACE_MODE", interlace) < 0)
- return -1;
+ /* Attach the VERSION attribute */
+ if (H5LTset_attribute_string(loc_id, dset_name, "IMAGE_VERSION", IMAGE_VERSION) < 0)
+ return -1;
- return 0;
+ /* Attach the IMAGE_SUBCLASS attribute */
+ if (H5LTset_attribute_string(loc_id, dset_name, "IMAGE_SUBCLASS", "IMAGE_TRUECOLOR") < 0)
+ return -1;
-}
+ /* Attach the INTERLACE_MODE attribute. This attributes is only for true color images */
+ if (H5LTset_attribute_string(loc_id, dset_name, "INTERLACE_MODE", interlace) < 0)
+ return -1;
+ return 0;
+}
/*-------------------------------------------------------------------------
* Function: H5IMread_imagef
@@ -258,33 +250,32 @@ herr_t H5IMmake_image_24bitf(hid_t loc_id,
*-------------------------------------------------------------------------
*/
-herr_t H5IMread_imagef(hid_t loc_id,
- const char *dset_name,
- int_f *buf)
+herr_t
+H5IMread_imagef(hid_t loc_id, const char *dset_name, int_f *buf)
{
- hid_t did;
- hid_t tid;
+ hid_t did;
+ hid_t tid;
/* open the dataset */
- if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+ if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
return -1;
/* determine appropriate datatype to use */
- if(sizeof(int_f) == sizeof(int))
+ if (sizeof(int_f) == sizeof(int))
tid = H5T_NATIVE_INT;
- else if(sizeof(int_f) == sizeof(long))
+ else if (sizeof(int_f) == sizeof(long))
tid = H5T_NATIVE_LONG;
- else if(sizeof(int_f) == sizeof(long long))
+ else if (sizeof(int_f) == sizeof(long long))
tid = H5T_NATIVE_LLONG;
else
goto out;
/* read to memory */
- if(H5Dread(did, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
+ if (H5Dread(did, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
goto out;
/* close */
- if(H5Dclose(did))
+ if (H5Dclose(did))
return -1;
return 0;
@@ -294,7 +285,6 @@ out:
return -1;
}
-
/*-------------------------------------------------------------------------
* Function: H5IMmake_palettef
*
@@ -318,75 +308,75 @@ out:
*-------------------------------------------------------------------------
*/
-herr_t H5IMmake_palettef(hid_t loc_id,
- const char *pal_name,
- const hsize_t *pal_dims,
- int_f *pal_data)
+herr_t
+H5IMmake_palettef(hid_t loc_id, const char *pal_name, const hsize_t *pal_dims, int_f *pal_data)
{
- hid_t did; /* dataset ID */
- hid_t sid; /* space ID */
- int has_pal;
+ hid_t did; /* dataset ID */
+ hid_t sid; /* space ID */
+ int has_pal;
- /* Check if the dataset already exists */
- has_pal = H5LTfind_dataset(loc_id, pal_name);
+ /* Check if the dataset already exists */
+ has_pal = H5LTfind_dataset(loc_id, pal_name);
- /* It exists. Return */
- if(has_pal == 1)
- return 0;
+ /* It exists. Return */
+ if (has_pal == 1)
+ return 0;
-/*-------------------------------------------------------------------------
- * create and write the dataset
- *-------------------------------------------------------------------------
- */
+ /*-------------------------------------------------------------------------
+ * create and write the dataset
+ *-------------------------------------------------------------------------
+ */
- /* create the data space for the dataset. */
- if((sid = H5Screate_simple(2, pal_dims, NULL)) < 0)
- return -1;
-
- /* create the dataset as H5T_NATIVE_UCHAR */
- if((did = H5Dcreate2(loc_id, pal_name, H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0)
- return -1;
-
- /* write with memory type H5T_NATIVE_INT */
- if(pal_data) {
- if(sizeof(int_f) == sizeof(int)) {
- if(H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, pal_data) < 0)
- return -1;
- } else if(sizeof(int_f) == sizeof(long)) {
- if(H5Dwrite(did, H5T_NATIVE_LONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, pal_data) < 0)
- return -1;
- } else if(sizeof(int_f) == sizeof(long long)) {
- if(H5Dwrite(did, H5T_NATIVE_LLONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, pal_data) < 0)
- return -1;
- } else
- return -1;
- }
-
- /* close */
- if(H5Dclose(did) < 0)
- return -1;
- if(H5Sclose(sid) < 0)
- return -1;
+ /* create the data space for the dataset. */
+ if ((sid = H5Screate_simple(2, pal_dims, NULL)) < 0)
+ return -1;
-/*-------------------------------------------------------------------------
- * attach the specification attributes
- *-------------------------------------------------------------------------
- */
+ /* create the dataset as H5T_NATIVE_UCHAR */
+ if ((did = H5Dcreate2(loc_id, pal_name, H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) <
+ 0)
+ return -1;
- /* Attach the attribute "CLASS" to the >>palette<< dataset*/
- if(H5LTset_attribute_string(loc_id, pal_name, "CLASS", PALETTE_CLASS) < 0)
- return -1;
+ /* write with memory type H5T_NATIVE_INT */
+ if (pal_data) {
+ if (sizeof(int_f) == sizeof(int)) {
+ if (H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, pal_data) < 0)
+ return -1;
+ }
+ else if (sizeof(int_f) == sizeof(long)) {
+ if (H5Dwrite(did, H5T_NATIVE_LONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, pal_data) < 0)
+ return -1;
+ }
+ else if (sizeof(int_f) == sizeof(long long)) {
+ if (H5Dwrite(did, H5T_NATIVE_LLONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, pal_data) < 0)
+ return -1;
+ }
+ else
+ return -1;
+ }
- /* Attach the attribute "PAL_VERSION" to the >>palette<< dataset*/
- if(H5LTset_attribute_string(loc_id, pal_name, "PAL_VERSION", "1.2") < 0)
- return -1;
+ /* close */
+ if (H5Dclose(did) < 0)
+ return -1;
+ if (H5Sclose(sid) < 0)
+ return -1;
- return 0;
+ /*-------------------------------------------------------------------------
+ * attach the specification attributes
+ *-------------------------------------------------------------------------
+ */
-}
+ /* Attach the attribute "CLASS" to the >>palette<< dataset*/
+ if (H5LTset_attribute_string(loc_id, pal_name, "CLASS", PALETTE_CLASS) < 0)
+ return -1;
+ /* Attach the attribute "PAL_VERSION" to the >>palette<< dataset*/
+ if (H5LTset_attribute_string(loc_id, pal_name, "PAL_VERSION", "1.2") < 0)
+ return -1;
+
+ return 0;
+}
/*-------------------------------------------------------------------------
* Function: H5IMget_palettef
@@ -411,20 +401,17 @@ herr_t H5IMmake_palettef(hid_t loc_id,
*-------------------------------------------------------------------------
*/
-herr_t H5IMget_palettef(hid_t loc_id,
- const char *image_name,
- int pal_number,
- int_f *pal_data)
+herr_t
+H5IMget_palettef(hid_t loc_id, const char *image_name, int pal_number, int_f *pal_data)
{
- if(sizeof(int_f) == sizeof(int))
- return H5IM_get_palette(loc_id,image_name,pal_number,H5T_NATIVE_INT,pal_data);
- else if(sizeof(int_f) == sizeof(long))
- return H5IM_get_palette(loc_id,image_name,pal_number,H5T_NATIVE_LONG,pal_data);
- else if(sizeof(int_f) == sizeof(long long))
- return H5IM_get_palette(loc_id,image_name,pal_number,H5T_NATIVE_LLONG,pal_data);
- else
- return -1;
-
+ if (sizeof(int_f) == sizeof(int))
+ return H5IM_get_palette(loc_id, image_name, pal_number, H5T_NATIVE_INT, pal_data);
+ else if (sizeof(int_f) == sizeof(long))
+ return H5IM_get_palette(loc_id, image_name, pal_number, H5T_NATIVE_LONG, pal_data);
+ else if (sizeof(int_f) == sizeof(long long))
+ return H5IM_get_palette(loc_id, image_name, pal_number, H5T_NATIVE_LLONG, pal_data);
+ else
+ return -1;
}
/*-------------------------------------------------------------------------
@@ -452,96 +439,88 @@ herr_t H5IMget_palettef(hid_t loc_id,
*
*-------------------------------------------------------------------------
*/
-herr_t H5IM_get_palette(hid_t loc_id,
- const char *image_name,
- int pal_number,
- hid_t tid,
- void *pal_data)
+herr_t
+H5IM_get_palette(hid_t loc_id, const char *image_name, int pal_number, hid_t tid, void *pal_data)
{
- hid_t image_id;
- int has_pal;
- hid_t attr_type;
- hid_t attr_id;
- hid_t attr_space_id;
- hid_t attr_class;
- hssize_t n_refs;
- size_t dim_ref;
- hobj_ref_t *refbuf; /* buffer to read references */
- hid_t pal_id;
-
- /* Open the dataset. */
- if((image_id = H5Dopen2(loc_id, image_name, H5P_DEFAULT)) < 0)
- return -1;
-
- /* Try to find the attribute "PALETTE" on the >>image<< dataset */
- has_pal = H5IM_find_palette(image_id);
+ hid_t image_id;
+ int has_pal;
+ hid_t attr_type;
+ hid_t attr_id;
+ hid_t attr_space_id;
+ hid_t attr_class;
+ hssize_t n_refs;
+ size_t dim_ref;
+ hobj_ref_t *refbuf; /* buffer to read references */
+ hid_t pal_id;
+
+ /* Open the dataset. */
+ if ((image_id = H5Dopen2(loc_id, image_name, H5P_DEFAULT)) < 0)
+ return -1;
- if(has_pal == 1)
- {
+ /* Try to find the attribute "PALETTE" on the >>image<< dataset */
+ has_pal = H5IM_find_palette(image_id);
- if((attr_id = H5Aopen(image_id, "PALETTE", H5P_DEFAULT)) < 0)
- goto out;
+ if (has_pal == 1) {
- if((attr_type = H5Aget_type(attr_id)) < 0)
- goto out;
+ if ((attr_id = H5Aopen(image_id, "PALETTE", H5P_DEFAULT)) < 0)
+ goto out;
- if((attr_class = H5Tget_class(attr_type)) < 0)
- goto out;
+ if ((attr_type = H5Aget_type(attr_id)) < 0)
+ goto out;
- /* Check if it is really a reference */
- if(attr_class == H5T_REFERENCE)
- {
+ if ((attr_class = H5Tget_class(attr_type)) < 0)
+ goto out;
- /* Get the reference(s) */
- if((attr_space_id = H5Aget_space(attr_id)) < 0)
- goto out;
+ /* Check if it is really a reference */
+ if (attr_class == H5T_REFERENCE) {
- n_refs = H5Sget_simple_extent_npoints(attr_space_id);
+ /* Get the reference(s) */
+ if ((attr_space_id = H5Aget_space(attr_id)) < 0)
+ goto out;
- dim_ref = (size_t)n_refs;
+ n_refs = H5Sget_simple_extent_npoints(attr_space_id);
- refbuf = (hobj_ref_t *)HDmalloc(sizeof(hobj_ref_t) * dim_ref);
+ dim_ref = (size_t)n_refs;
- if(H5Aread(attr_id, attr_type, refbuf) < 0)
- goto out;
+ refbuf = (hobj_ref_t *)HDmalloc(sizeof(hobj_ref_t) * dim_ref);
- /* Get the palette id */
- if((pal_id = H5Rdereference(image_id, H5R_OBJECT, &refbuf[pal_number])) < 0)
- goto out;
+ if (H5Aread(attr_id, attr_type, refbuf) < 0)
+ goto out;
- /* Read the palette dataset using the memory type TID */
- if(H5Dread(pal_id, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, pal_data) < 0)
- goto out;
+ /* Get the palette id */
+ if ((pal_id = H5Rdereference(image_id, H5R_OBJECT, &refbuf[pal_number])) < 0)
+ goto out;
- if(H5Sclose(attr_space_id) < 0)
- goto out;
+ /* Read the palette dataset using the memory type TID */
+ if (H5Dread(pal_id, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, pal_data) < 0)
+ goto out;
- /* close the dereferenced dataset */
- if(H5Dclose(pal_id) < 0)
- goto out;
+ if (H5Sclose(attr_space_id) < 0)
+ goto out;
- free(refbuf);
+ /* close the dereferenced dataset */
+ if (H5Dclose(pal_id) < 0)
+ goto out;
- } /* H5T_REFERENCE */
+ free(refbuf);
- if(H5Tclose(attr_type) < 0)
- goto out;
+ } /* H5T_REFERENCE */
- /* Close the attribute. */
- if(H5Aclose(attr_id) < 0)
- goto out;
+ if (H5Tclose(attr_type) < 0)
+ goto out;
- }
+ /* Close the attribute. */
+ if (H5Aclose(attr_id) < 0)
+ goto out;
+ }
- /* Close the image dataset. */
- if(H5Dclose(image_id) < 0)
- return -1;
+ /* Close the image dataset. */
+ if (H5Dclose(image_id) < 0)
+ return -1;
- return 0;
+ return 0;
out:
- H5Dclose(image_id);
- return -1;
-
-
+ H5Dclose(image_id);
+ return -1;
}