summaryrefslogtreecommitdiffstats
path: root/src/H5Sselect.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Sselect.c')
-rw-r--r--src/H5Sselect.c1030
1 files changed, 501 insertions, 529 deletions
diff --git a/src/H5Sselect.c b/src/H5Sselect.c
index 5ba0f8d..023ab80 100644
--- a/src/H5Sselect.c
+++ b/src/H5Sselect.c
@@ -21,36 +21,31 @@
/* Module Setup */
/****************/
-#include "H5Smodule.h" /* This source code file is part of the H5S module */
-
+#include "H5Smodule.h" /* This source code file is part of the H5S module */
/***********/
/* Headers */
/***********/
-#include "H5private.h" /* Generic Functions */
-#include "H5Dprivate.h" /* Datasets */
-#include "H5Eprivate.h" /* Error handling */
-#include "H5FLprivate.h" /* Free Lists */
-#include "H5Iprivate.h" /* IDs */
-#include "H5MMprivate.h" /* Memory management */
-#include "H5Spkg.h" /* Dataspaces */
-#include "H5VMprivate.h" /* Vector and array functions */
-
+#include "H5private.h" /* Generic Functions */
+#include "H5Dprivate.h" /* Datasets */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5FLprivate.h" /* Free Lists */
+#include "H5Iprivate.h" /* IDs */
+#include "H5MMprivate.h" /* Memory management */
+#include "H5Spkg.h" /* Dataspaces */
+#include "H5VMprivate.h" /* Vector and array functions */
/****************/
/* Local Macros */
/****************/
/* All the valid public flags to H5Ssel_iter_create() */
-#define H5S_SEL_ITER_ALL_PUBLIC_FLAGS (H5S_SEL_ITER_GET_SEQ_LIST_SORTED | \
- H5S_SEL_ITER_SHARE_WITH_DATASPACE)
-
+#define H5S_SEL_ITER_ALL_PUBLIC_FLAGS (H5S_SEL_ITER_GET_SEQ_LIST_SORTED | H5S_SEL_ITER_SHARE_WITH_DATASPACE)
/******************/
/* Local Typedefs */
/******************/
-
/********************/
/* Local Prototypes */
/********************/
@@ -61,12 +56,10 @@ static htri_t H5S__select_iter_has_next_block(const H5S_sel_iter_t *iter);
static herr_t H5S__select_iter_next_block(H5S_sel_iter_t *iter);
#endif /* LATER */
-
/*****************************/
/* Library Private Variables */
/*****************************/
-
/*********************/
/* Package Variables */
/*********************/
@@ -80,13 +73,10 @@ H5FL_SEQ_EXTERN(size_t);
/* Declare extern free list to manage sequences of hsize_t */
H5FL_SEQ_EXTERN(hsize_t);
-
/*******************/
/* Local Variables */
/*******************/
-
-
/*--------------------------------------------------------------------------
NAME
H5S_select_offset
@@ -125,7 +115,6 @@ H5S_select_offset(H5S_t *space, const hssize_t *offset)
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5S_select_offset() */
-
/*--------------------------------------------------------------------------
NAME
H5Soffset_simple
@@ -138,37 +127,36 @@ H5S_select_offset(H5S_t *space, const hssize_t *offset)
RETURNS
Non-negative on success/Negative on failure
DESCRIPTION
- This function creates an offset for the selection within an extent, allowing
+ This function creates an offset for the selection within an extent, allowing
the same shaped selection to be moved to different locations within a
dataspace without requiring it to be re-defined.
--------------------------------------------------------------------------*/
herr_t
H5Soffset_simple(hid_t space_id, const hssize_t *offset)
{
- H5S_t *space; /* Dataspace to modify */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5S_t *space; /* Dataspace to modify */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE2("e", "i*Hs", space_id, offset);
/* Check args */
- if(NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
+ if (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "not a dataspace")
- if(space->extent.rank == 0 || (H5S_GET_EXTENT_TYPE(space) == H5S_SCALAR
- || H5S_GET_EXTENT_TYPE(space) == H5S_NULL))
+ if (space->extent.rank == 0 ||
+ (H5S_GET_EXTENT_TYPE(space) == H5S_SCALAR || H5S_GET_EXTENT_TYPE(space) == H5S_NULL))
HGOTO_ERROR(H5E_ATOM, H5E_UNSUPPORTED, FAIL, "can't set offset on scalar or null dataspace")
- if(offset == NULL)
+ if (offset == NULL)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no offset specified")
/* Set the selection offset */
- if(H5S_select_offset(space, offset) < 0)
+ if (H5S_select_offset(space, offset) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "can't set offset")
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Soffset_simple() */
-
/*--------------------------------------------------------------------------
NAME
H5Sselect_copy
@@ -193,28 +181,27 @@ done:
herr_t
H5Sselect_copy(hid_t dst_id, hid_t src_id)
{
- H5S_t *src;
- H5S_t *dst;
- herr_t ret_value = SUCCEED;
+ H5S_t *src;
+ H5S_t *dst;
+ herr_t ret_value = SUCCEED;
FUNC_ENTER_API(FAIL)
H5TRACE2("e", "ii", dst_id, src_id);
/* Check args */
- if(NULL == (src = (H5S_t *)H5I_object_verify(src_id, H5I_DATASPACE)))
+ if (NULL == (src = (H5S_t *)H5I_object_verify(src_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
- if(NULL == (dst = (H5S_t *)H5I_object_verify(dst_id, H5I_DATASPACE)))
+ if (NULL == (dst = (H5S_t *)H5I_object_verify(dst_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
/* Copy */
- if(H5S_select_copy(dst, src, FALSE) < 0)
+ if (H5S_select_copy(dst, src, FALSE) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOPY, FAIL, "can't copy selection")
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Sselect_copy() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_copy
@@ -243,7 +230,7 @@ done:
herr_t
H5S_select_copy(H5S_t *dst, const H5S_t *src, hbool_t share_selection)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
@@ -252,21 +239,20 @@ H5S_select_copy(H5S_t *dst, const H5S_t *src, hbool_t share_selection)
HDassert(src);
/* Release the current selection */
- if(H5S_SELECT_RELEASE(dst) < 0)
+ if (H5S_SELECT_RELEASE(dst) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release selection")
/* Copy regular fields */
dst->select = src->select;
/* Perform correct type of copy based on the type of selection */
- if((ret_value = (*src->select.type->copy)(dst, src, share_selection)) < 0)
+ if ((ret_value = (*src->select.type->copy)(dst, src, share_selection)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOPY, FAIL, "can't copy selection specific information")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_copy() */
-
/*-------------------------------------------------------------------------
* Function: H5S_select_release
*
@@ -286,21 +272,20 @@ done:
herr_t
H5S_select_release(H5S_t *ds)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT
HDassert(ds);
/* Call the selection type's release function */
- if((ds->select.type) && ((ret_value = (*ds->select.type->release)(ds)) < 0))
+ if ((ds->select.type) && ((ret_value = (*ds->select.type->release)(ds)) < 0))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release selection")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_release() */
-
/*-------------------------------------------------------------------------
* Function: H5S_select_serial_size
*
@@ -321,7 +306,7 @@ done:
hssize_t
H5S_select_serial_size(const H5S_t *space)
{
- hssize_t ret_value = -1; /* Return value */
+ hssize_t ret_value = -1; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -333,7 +318,6 @@ H5S_select_serial_size(const H5S_t *space)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_serial_size() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_serialize
@@ -361,7 +345,7 @@ H5S_select_serial_size(const H5S_t *space)
herr_t
H5S_select_serialize(const H5S_t *space, uint8_t **p)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -374,7 +358,6 @@ H5S_select_serialize(const H5S_t *space, uint8_t **p)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_serialize() */
-
/*--------------------------------------------------------------------------
NAME
H5Sget_select_npoints
@@ -395,14 +378,14 @@ H5S_select_serialize(const H5S_t *space, uint8_t **p)
hssize_t
H5Sget_select_npoints(hid_t spaceid)
{
- H5S_t *space; /* Dataspace to modify selection of */
- hssize_t ret_value; /* return value */
+ H5S_t * space; /* Dataspace to modify selection of */
+ hssize_t ret_value; /* return value */
FUNC_ENTER_API(FAIL)
H5TRACE1("Hs", "i", spaceid);
/* Check args */
- if(NULL == (space = (H5S_t *)H5I_object_verify(spaceid, H5I_DATASPACE)))
+ if (NULL == (space = (H5S_t *)H5I_object_verify(spaceid, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
ret_value = (hssize_t)H5S_GET_SELECT_NPOINTS(space);
@@ -411,7 +394,6 @@ done:
FUNC_LEAVE_API(ret_value)
} /* H5Sget_select_npoints() */
-
/*--------------------------------------------------------------------------
NAME
H5S_get_select_npoints
@@ -443,7 +425,6 @@ H5S_get_select_npoints(const H5S_t *space)
FUNC_LEAVE_NOAPI(space->select.num_elem)
} /* end H5S_get_select_npoints() */
-
/*--------------------------------------------------------------------------
NAME
H5Sselect_valid
@@ -467,14 +448,14 @@ H5S_get_select_npoints(const H5S_t *space)
htri_t
H5Sselect_valid(hid_t spaceid)
{
- H5S_t *space; /* Dataspace to modify selection of */
- htri_t ret_value; /* return value */
+ H5S_t *space; /* Dataspace to modify selection of */
+ htri_t ret_value; /* return value */
FUNC_ENTER_API(FAIL)
H5TRACE1("t", "i", spaceid);
/* Check args */
- if(NULL == (space = (H5S_t *)H5I_object_verify(spaceid, H5I_DATASPACE)))
+ if (NULL == (space = (H5S_t *)H5I_object_verify(spaceid, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
ret_value = H5S_SELECT_VALID(space);
@@ -483,7 +464,6 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Sselect_valid() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_valid
@@ -510,7 +490,7 @@ done:
htri_t
H5S_select_valid(const H5S_t *space)
{
- htri_t ret_value = FAIL; /* Return value */
+ htri_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -521,7 +501,6 @@ H5S_select_valid(const H5S_t *space)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_valid() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_deserialize
@@ -551,8 +530,8 @@ H5S_select_valid(const H5S_t *space)
herr_t
H5S_select_deserialize(H5S_t **space, const uint8_t **p)
{
- uint32_t sel_type; /* Pointer to the selection type */
- herr_t ret_value = FAIL; /* Return value */
+ uint32_t sel_type; /* Pointer to the selection type */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
@@ -564,20 +543,20 @@ H5S_select_deserialize(H5S_t **space, const uint8_t **p)
UINT32DECODE(*p, sel_type);
/* Make routine for selection type */
- switch(sel_type) {
- case H5S_SEL_POINTS: /* Sequence of points selected */
+ switch (sel_type) {
+ case H5S_SEL_POINTS: /* Sequence of points selected */
ret_value = (*H5S_sel_point->deserialize)(space, p);
break;
- case H5S_SEL_HYPERSLABS: /* Hyperslab selection defined */
+ case H5S_SEL_HYPERSLABS: /* Hyperslab selection defined */
ret_value = (*H5S_sel_hyper->deserialize)(space, p);
break;
- case H5S_SEL_ALL: /* Entire extent selected */
+ case H5S_SEL_ALL: /* Entire extent selected */
ret_value = (*H5S_sel_all->deserialize)(space, p);
break;
- case H5S_SEL_NONE: /* Nothing selected */
+ case H5S_SEL_NONE: /* Nothing selected */
ret_value = (*H5S_sel_none->deserialize)(space, p);
break;
@@ -585,14 +564,13 @@ H5S_select_deserialize(H5S_t **space, const uint8_t **p)
break;
}
- if(ret_value < 0)
+ if (ret_value < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTLOAD, FAIL, "can't deserialize selection")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_deserialize() */
-
/*--------------------------------------------------------------------------
NAME
H5Sget_select_bounds
@@ -626,16 +604,16 @@ done:
herr_t
H5Sget_select_bounds(hid_t spaceid, hsize_t start[], hsize_t end[])
{
- H5S_t *space; /* Dataspace to modify selection of */
- herr_t ret_value; /* return value */
+ H5S_t *space; /* Dataspace to modify selection of */
+ herr_t ret_value; /* return value */
FUNC_ENTER_API(FAIL)
H5TRACE3("e", "i*h*h", spaceid, start, end);
/* Check args */
- if(start == NULL || end == NULL)
+ if (start == NULL || end == NULL)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid pointer")
- if(NULL == (space = (H5S_t *)H5I_object_verify(spaceid, H5I_DATASPACE)))
+ if (NULL == (space = (H5S_t *)H5I_object_verify(spaceid, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a dataspace")
ret_value = H5S_SELECT_BOUNDS(space, start, end);
@@ -644,7 +622,6 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Sget_select_bounds() */
-
/*--------------------------------------------------------------------------
NAME
H5S_get_select_bounds
@@ -675,7 +652,7 @@ done:
herr_t
H5S_get_select_bounds(const H5S_t *space, hsize_t *start, hsize_t *end)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -689,7 +666,6 @@ H5S_get_select_bounds(const H5S_t *space, hsize_t *start, hsize_t *end)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_get_select_bounds() */
-
/*--------------------------------------------------------------------------
NAME
H5S_get_select_offset
@@ -716,7 +692,7 @@ H5S_get_select_bounds(const H5S_t *space, hsize_t *start, hsize_t *end)
herr_t
H5S_get_select_offset(const H5S_t *space, hsize_t *offset)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -729,7 +705,6 @@ H5S_get_select_offset(const H5S_t *space, hsize_t *offset)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_get_select_offset() */
-
/*--------------------------------------------------------------------------
NAME
H5S_get_select_unlim_dim
@@ -755,7 +730,7 @@ H5S_get_select_offset(const H5S_t *space, hsize_t *offset)
int
H5S_get_select_unlim_dim(const H5S_t *space)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -767,7 +742,6 @@ H5S_get_select_unlim_dim(const H5S_t *space)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_get_select_unlim_dim() */
-
/*--------------------------------------------------------------------------
NAME
H5S_get_select_num_elem_non_unlim
@@ -789,8 +763,7 @@ H5S_get_select_unlim_dim(const H5S_t *space)
REVISION LOG
--------------------------------------------------------------------------*/
herr_t
-H5S_get_select_num_elem_non_unlim(const H5S_t *space,
- hsize_t *num_elem_non_unlim)
+H5S_get_select_num_elem_non_unlim(const H5S_t *space, hsize_t *num_elem_non_unlim)
{
herr_t ret_value = SUCCEED; /* return value */
@@ -801,18 +774,18 @@ H5S_get_select_num_elem_non_unlim(const H5S_t *space,
HDassert(num_elem_non_unlim);
/* Check for selection callback */
- if(!space->select.type->num_elem_non_unlim)
+ if (!space->select.type->num_elem_non_unlim)
HGOTO_ERROR(H5E_DATASPACE, H5E_UNSUPPORTED, FAIL, "selection type has no num_elem_non_unlim callback")
/* Make selection callback */
- if((*space->select.type->num_elem_non_unlim)(space, num_elem_non_unlim) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOUNT, FAIL, "can't get number of elements in non-unlimited dimension")
+ if ((*space->select.type->num_elem_non_unlim)(space, num_elem_non_unlim) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOUNT, FAIL,
+ "can't get number of elements in non-unlimited dimension")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_get_select_unlim_dim() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_is_contiguous
@@ -837,7 +810,7 @@ done:
htri_t
H5S_select_is_contiguous(const H5S_t *space)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -849,7 +822,6 @@ H5S_select_is_contiguous(const H5S_t *space)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_is_contiguous() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_is_single
@@ -874,7 +846,7 @@ H5S_select_is_contiguous(const H5S_t *space)
htri_t
H5S_select_is_single(const H5S_t *space)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -886,7 +858,6 @@ H5S_select_is_single(const H5S_t *space)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_is_single() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_is_regular
@@ -911,7 +882,7 @@ H5S_select_is_single(const H5S_t *space)
htri_t
H5S_select_is_regular(const H5S_t *space)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -923,7 +894,6 @@ H5S_select_is_regular(const H5S_t *space)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_is_regular() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_adjust_u
@@ -948,7 +918,7 @@ H5S_select_is_regular(const H5S_t *space)
herr_t
H5S_select_adjust_u(H5S_t *space, const hsize_t *offset)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -962,7 +932,6 @@ H5S_select_adjust_u(H5S_t *space, const hsize_t *offset)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_adjust_u() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_adjust_s
@@ -987,7 +956,7 @@ H5S_select_adjust_u(H5S_t *space, const hsize_t *offset)
herr_t
H5S_select_adjust_s(H5S_t *space, const hssize_t *offset)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -1001,7 +970,6 @@ H5S_select_adjust_s(H5S_t *space, const hssize_t *offset)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_adjust_s() */
-
/*--------------------------------------------------------------------------
NAME
H5Sselect_adjust
@@ -1023,35 +991,34 @@ H5S_select_adjust_s(H5S_t *space, const hssize_t *offset)
herr_t
H5Sselect_adjust(hid_t space_id, const hssize_t *offset)
{
- H5S_t *space;
- hsize_t low_bounds[H5S_MAX_RANK];
- hsize_t high_bounds[H5S_MAX_RANK];
+ H5S_t * space;
+ hsize_t low_bounds[H5S_MAX_RANK];
+ hsize_t high_bounds[H5S_MAX_RANK];
unsigned u;
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE2("e", "i*Hs", space_id, offset);
- if(NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
+ if (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace")
- if(NULL == offset)
+ if (NULL == offset)
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "NULL offset pointer")
/* Check bounds */
- if(H5S_SELECT_BOUNDS(space, low_bounds, high_bounds) < 0)
+ if (H5S_SELECT_BOUNDS(space, low_bounds, high_bounds) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get selection bounds")
- for(u = 0; u < space->extent.rank; u++)
- if(offset[u] > (hssize_t)low_bounds[u])
+ for (u = 0; u < space->extent.rank; u++)
+ if (offset[u] > (hssize_t)low_bounds[u])
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "adjustment would move selection below zero offset")
- if(H5S_select_adjust_s(space, offset) < 0)
+ if (H5S_select_adjust_s(space, offset) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSET, FAIL, "can't adjust selection")
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Sselect_adjust() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_project_scalar
@@ -1077,7 +1044,7 @@ done:
herr_t
H5S_select_project_scalar(const H5S_t *space, hsize_t *offset)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -1090,7 +1057,6 @@ H5S_select_project_scalar(const H5S_t *space, hsize_t *offset)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_project_scalar() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_project_simple
@@ -1117,7 +1083,7 @@ H5S_select_project_scalar(const H5S_t *space, hsize_t *offset)
herr_t
H5S_select_project_simple(const H5S_t *space, H5S_t *new_space, hsize_t *offset)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -1131,7 +1097,6 @@ H5S_select_project_simple(const H5S_t *space, H5S_t *new_space, hsize_t *offset)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_project_simple() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_iter_init
@@ -1151,10 +1116,9 @@ H5S_select_project_simple(const H5S_t *space, H5S_t *new_space, hsize_t *offset)
in the dataspace's selection.
--------------------------------------------------------------------------*/
herr_t
-H5S_select_iter_init(H5S_sel_iter_t *sel_iter, const H5S_t *space,
- size_t elmt_size, unsigned flags)
+H5S_select_iter_init(H5S_sel_iter_t *sel_iter, const H5S_t *space, size_t elmt_size, unsigned flags)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -1168,7 +1132,7 @@ H5S_select_iter_init(H5S_sel_iter_t *sel_iter, const H5S_t *space,
sel_iter->rank = space->extent.rank;
/* If dims > 0, copy the dataspace dimensions & selection offset */
- if(sel_iter->rank > 0) {
+ if (sel_iter->rank > 0) {
H5MM_memcpy(sel_iter->dims, space->extent.size, sizeof(hsize_t) * space->extent.rank);
H5MM_memcpy(sel_iter->sel_off, space->select.offset, sizeof(hsize_t) * space->extent.rank);
}
@@ -1189,7 +1153,6 @@ H5S_select_iter_init(H5S_sel_iter_t *sel_iter, const H5S_t *space,
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_iter_init() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_iter_coords
@@ -1215,7 +1178,7 @@ H5S_select_iter_init(H5S_sel_iter_t *sel_iter, const H5S_t *space,
herr_t
H5S_select_iter_coords(const H5S_sel_iter_t *sel_iter, hsize_t *coords)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -1230,7 +1193,7 @@ H5S_select_iter_coords(const H5S_sel_iter_t *sel_iter, hsize_t *coords)
} /* end H5S_select_iter_coords() */
#ifdef LATER
-
+
/*--------------------------------------------------------------------------
NAME
H5S__select_iter_block
@@ -1257,7 +1220,7 @@ H5S_select_iter_coords(const H5S_sel_iter_t *sel_iter, hsize_t *coords)
static herr_t
H5S__select_iter_block(const H5S_sel_iter_t *iter, hsize_t *start, hsize_t *end)
{
- herr_t ret_value; /* return value */
+ herr_t ret_value; /* return value */
FUNC_ENTER_STATIC_NOERR
@@ -1273,7 +1236,6 @@ H5S__select_iter_block(const H5S_sel_iter_t *iter, hsize_t *start, hsize_t *end)
} /* end H5S__select_iter_block() */
#endif /* LATER */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_iter_nelmts
@@ -1297,7 +1259,7 @@ H5S__select_iter_block(const H5S_sel_iter_t *iter, hsize_t *start, hsize_t *end)
hsize_t
H5S_select_iter_nelmts(const H5S_sel_iter_t *sel_iter)
{
- hsize_t ret_value = 0; /* Return value */
+ hsize_t ret_value = 0; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -1311,7 +1273,7 @@ H5S_select_iter_nelmts(const H5S_sel_iter_t *sel_iter)
} /* end H5S_select_iter_nelmts() */
#ifdef LATER
-
+
/*--------------------------------------------------------------------------
NAME
H5S__select_iter_has_next_block
@@ -1336,7 +1298,7 @@ H5S_select_iter_nelmts(const H5S_sel_iter_t *sel_iter)
static htri_t
H5S__select_iter_has_next_block(const H5S_sel_iter_t *iter)
{
- herr_t ret_value; /* return value */
+ herr_t ret_value; /* return value */
FUNC_ENTER_STATIC_NOERR
@@ -1350,7 +1312,6 @@ H5S__select_iter_has_next_block(const H5S_sel_iter_t *iter)
} /* end H5S__select_iter_has_next_block() */
#endif /* LATER */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_iter_next
@@ -1376,25 +1337,25 @@ H5S__select_iter_has_next_block(const H5S_sel_iter_t *iter)
herr_t
H5S_select_iter_next(H5S_sel_iter_t *iter, size_t nelem)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
/* Check args */
HDassert(iter);
- HDassert(nelem>0);
+ HDassert(nelem > 0);
/* Call iter_next routine for selection type */
ret_value = (*iter->type->iter_next)(iter, nelem);
/* Decrement the number of elements left in selection */
- iter->elmt_left-=nelem;
+ iter->elmt_left -= nelem;
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_iter_next() */
#ifdef LATER
-
+
/*--------------------------------------------------------------------------
NAME
H5S__select_iter_next_block
@@ -1421,7 +1382,7 @@ H5S_select_iter_next(H5S_sel_iter_t *iter, size_t nelem)
static herr_t
H5S__select_iter_next_block(H5S_sel_iter_t *iter)
{
- herr_t ret_value; /* return value */
+ herr_t ret_value; /* return value */
FUNC_ENTER_STATIC_NOERR
@@ -1435,7 +1396,6 @@ H5S__select_iter_next_block(H5S_sel_iter_t *iter)
} /* end H5S__select_iter_next_block() */
#endif /* LATER */
-
/*-------------------------------------------------------------------------
* Function: H5S_select_iter_get_seq_list
*
@@ -1454,10 +1414,10 @@ H5S__select_iter_next_block(H5S_sel_iter_t *iter)
*-------------------------------------------------------------------------
*/
herr_t
-H5S_select_iter_get_seq_list(H5S_sel_iter_t *iter, size_t maxseq, size_t maxelmts,
- size_t *nseq, size_t *nelmts, hsize_t *off, size_t *len)
+H5S_select_iter_get_seq_list(H5S_sel_iter_t *iter, size_t maxseq, size_t maxelmts, size_t *nseq,
+ size_t *nelmts, hsize_t *off, size_t *len)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT
@@ -1465,14 +1425,13 @@ H5S_select_iter_get_seq_list(H5S_sel_iter_t *iter, size_t maxseq, size_t maxelmt
HDassert(iter);
/* Call the selection type's get_seq_list function */
- if((ret_value = (*iter->type->iter_get_seq_list)(iter, maxseq, maxelmts, nseq, nelmts, off, len)) < 0)
+ if ((ret_value = (*iter->type->iter_get_seq_list)(iter, maxseq, maxelmts, nseq, nelmts, off, len)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "unable to get selection sequence list")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_iter_get_seq_list() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_iter_release
@@ -1496,7 +1455,7 @@ done:
herr_t
H5S_select_iter_release(H5S_sel_iter_t *sel_iter)
{
- herr_t ret_value = FAIL; /* Return value */
+ herr_t ret_value = FAIL; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -1509,7 +1468,6 @@ H5S_select_iter_release(H5S_sel_iter_t *sel_iter)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_iter_release() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_iterate
@@ -1539,20 +1497,20 @@ H5S_select_iter_release(H5S_sel_iter_t *sel_iter)
the selection is not modified.
--------------------------------------------------------------------------*/
herr_t
-H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space,
- const H5S_sel_iter_op_t *op, void *op_data)
+H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space, const H5S_sel_iter_op_t *op,
+ void *op_data)
{
- H5S_sel_iter_t *iter = NULL; /* Selection iteration info */
- hbool_t iter_init = FALSE; /* Selection iteration info has been initialized */
- hsize_t *off = NULL; /* Array to store sequence offsets */
- size_t *len = NULL; /* Array to store sequence lengths */
- hssize_t nelmts; /* Number of elements in selection */
- hsize_t space_size[H5S_MAX_RANK]; /* Dataspace size */
- size_t max_elem; /* Maximum number of elements allowed in sequences */
- size_t elmt_size; /* Datatype size */
- unsigned ndims; /* Number of dimensions in dataspace */
- herr_t user_ret = 0; /* User's return value */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5S_sel_iter_t *iter = NULL; /* Selection iteration info */
+ hbool_t iter_init = FALSE; /* Selection iteration info has been initialized */
+ hsize_t * off = NULL; /* Array to store sequence offsets */
+ size_t * len = NULL; /* Array to store sequence lengths */
+ hssize_t nelmts; /* Number of elements in selection */
+ hsize_t space_size[H5S_MAX_RANK]; /* Dataspace size */
+ size_t max_elem; /* Maximum number of elements allowed in sequences */
+ size_t elmt_size; /* Datatype size */
+ unsigned ndims; /* Number of dimensions in dataspace */
+ herr_t user_ret = 0; /* User's return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
@@ -1563,29 +1521,29 @@ H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space,
HDassert(op);
/* Get the datatype size */
- if(0 == (elmt_size = H5T_get_size(type)))
+ if (0 == (elmt_size = H5T_get_size(type)))
HGOTO_ERROR(H5E_DATATYPE, H5E_BADSIZE, FAIL, "datatype size invalid")
/* Allocate the selection iterator */
- if(NULL == (iter = H5FL_MALLOC(H5S_sel_iter_t)))
+ if (NULL == (iter = H5FL_MALLOC(H5S_sel_iter_t)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate selection iterator")
/* Initialize iterator */
- if(H5S_select_iter_init(iter, space, elmt_size, 0) < 0)
+ if (H5S_select_iter_init(iter, space, elmt_size, 0) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "unable to initialize selection iterator")
- iter_init = TRUE; /* Selection iteration info has been initialized */
+ iter_init = TRUE; /* Selection iteration info has been initialized */
/* Get the number of elements in selection */
- if((nelmts = (hssize_t)H5S_GET_SELECT_NPOINTS(space)) < 0)
+ if ((nelmts = (hssize_t)H5S_GET_SELECT_NPOINTS(space)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOUNT, FAIL, "can't get number of elements selected")
/* Get the rank of the dataspace */
ndims = space->extent.rank;
- if(ndims > 0) {
- /* Copy the size of the space */
- HDassert(space->extent.size);
- H5MM_memcpy(space_size, space->extent.size, ndims * sizeof(hsize_t));
+ if (ndims > 0) {
+ /* Copy the size of the space */
+ HDassert(space->extent.size);
+ H5MM_memcpy(space_size, space->extent.size, ndims * sizeof(hsize_t));
} /* end if */
space_size[ndims] = elmt_size;
@@ -1593,25 +1551,26 @@ H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space,
H5_CHECKED_ASSIGN(max_elem, size_t, nelmts, hssize_t);
/* Allocate the offset & length arrays */
- if(NULL == (len = H5FL_SEQ_MALLOC(size_t, H5D_IO_VECTOR_SIZE)))
+ if (NULL == (len = H5FL_SEQ_MALLOC(size_t, H5D_IO_VECTOR_SIZE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate length vector array")
- if(NULL == (off = H5FL_SEQ_MALLOC(hsize_t, H5D_IO_VECTOR_SIZE)))
+ if (NULL == (off = H5FL_SEQ_MALLOC(hsize_t, H5D_IO_VECTOR_SIZE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate offset vector array")
/* Loop, while elements left in selection */
- while(max_elem > 0 && user_ret == 0) {
- size_t nelem; /* Number of elements used in sequences */
- size_t nseq; /* Number of sequences generated */
- size_t curr_seq; /* Current sequence being worked on */
+ while (max_elem > 0 && user_ret == 0) {
+ size_t nelem; /* Number of elements used in sequences */
+ size_t nseq; /* Number of sequences generated */
+ size_t curr_seq; /* Current sequence being worked on */
/* Get the sequences of bytes */
- if(H5S_SELECT_ITER_GET_SEQ_LIST(iter, (size_t)H5D_IO_VECTOR_SIZE, max_elem, &nseq, &nelem, off, len) < 0)
+ if (H5S_SELECT_ITER_GET_SEQ_LIST(iter, (size_t)H5D_IO_VECTOR_SIZE, max_elem, &nseq, &nelem, off,
+ len) < 0)
HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL, "sequence length generation failed")
/* Loop, while sequences left to process */
- for(curr_seq = 0; curr_seq < nseq && user_ret == 0; curr_seq++) {
- hsize_t curr_off; /* Current offset within sequence */
- size_t curr_len; /* Length of bytes left to process in sequence */
+ for (curr_seq = 0; curr_seq < nseq && user_ret == 0; curr_seq++) {
+ hsize_t curr_off; /* Current offset within sequence */
+ size_t curr_len; /* Length of bytes left to process in sequence */
/* Get the current offset */
curr_off = off[curr_seq];
@@ -1620,14 +1579,14 @@ H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space,
curr_len = len[curr_seq];
/* Loop, while bytes left in sequence */
- while(curr_len > 0 && user_ret == 0) {
- hsize_t coords[H5S_MAX_RANK]; /* Coordinates of element in dataspace */
- hsize_t tmp_off; /* Temporary offset within sequence */
- uint8_t *loc; /* Current element location in buffer */
- int i; /* Local Index variable */
+ while (curr_len > 0 && user_ret == 0) {
+ hsize_t coords[H5S_MAX_RANK]; /* Coordinates of element in dataspace */
+ hsize_t tmp_off; /* Temporary offset within sequence */
+ uint8_t *loc; /* Current element location in buffer */
+ int i; /* Local Index variable */
/* Compute the coordinate from the offset */
- for(i = (int)ndims, tmp_off = curr_off; i >= 0; i--) {
+ for (i = (int)ndims, tmp_off = curr_off; i >= 0; i--) {
coords[i] = tmp_off % space_size[i];
tmp_off /= space_size[i];
} /* end for */
@@ -1636,23 +1595,23 @@ H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space,
loc = (unsigned char *)buf + curr_off;
/* Check which type of callback to make */
- switch(op->op_type) {
+ switch (op->op_type) {
case H5S_SEL_ITER_OP_APP:
/* Make the application callback */
user_ret = (op->u.app_op.op)(loc, op->u.app_op.type_id, ndims, coords, op_data);
- break;
+ break;
case H5S_SEL_ITER_OP_LIB:
/* Call the library's callback */
user_ret = (op->u.lib_op)(loc, type, ndims, coords, op_data);
- break;
+ break;
default:
HGOTO_ERROR(H5E_DATASPACE, H5E_UNSUPPORTED, FAIL, "unsupported op type")
} /* end switch */
/* Check for error return from iterator */
- if(user_ret < 0)
+ if (user_ret < 0)
HERROR(H5E_DATASPACE, H5E_CANTNEXT, "iteration operator failed");
/* Increment offset in dataspace */
@@ -1661,7 +1620,7 @@ H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space,
/* Decrement number of bytes left in sequence */
curr_len -= elmt_size;
} /* end while */
- } /* end for */
+ } /* end for */
/* Decrement number of elements left to process */
max_elem -= nelem;
@@ -1672,21 +1631,20 @@ H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space,
done:
/* Release resources, if allocated */
- if(len)
+ if (len)
len = H5FL_SEQ_FREE(size_t, len);
- if(off)
+ if (off)
off = H5FL_SEQ_FREE(hsize_t, off);
/* Release selection iterator */
- if(iter_init && H5S_SELECT_ITER_RELEASE(iter) < 0)
+ if (iter_init && H5S_SELECT_ITER_RELEASE(iter) < 0)
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release selection iterator")
- if(iter)
+ if (iter)
iter = H5FL_FREE(H5S_sel_iter_t, iter);
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_iterate() */
-
/*--------------------------------------------------------------------------
NAME
H5Sget_select_type
@@ -1699,20 +1657,20 @@ done:
Non-negative on success/Negative on failure. Return value is from the
set of values in the H5S_sel_type enumerated type.
DESCRIPTION
- This function retrieves the type of selection currently defined for
+ This function retrieves the type of selection currently defined for
a dataspace.
--------------------------------------------------------------------------*/
H5S_sel_type
H5Sget_select_type(hid_t space_id)
{
- H5S_t *space; /* dataspace to modify */
- H5S_sel_type ret_value; /* Return value */
+ H5S_t * space; /* dataspace to modify */
+ H5S_sel_type ret_value; /* Return value */
FUNC_ENTER_API(H5S_SEL_ERROR)
H5TRACE1("St", "i", space_id);
/* Check args */
- if(NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
+ if (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, H5S_SEL_ERROR, "not a dataspace")
/* Set return value */
@@ -1722,7 +1680,6 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Sget_select_type() */
-
/*--------------------------------------------------------------------------
NAME
H5S_get_select_type
@@ -1735,7 +1692,7 @@ done:
Non-negative on success/Negative on failure. Return value is from the
set of values in the H5S_sel_type enumerated type.
DESCRIPTION
- This function retrieves the type of selection currently defined for
+ This function retrieves the type of selection currently defined for
a dataspace.
COMMENTS
This routine participates in the "Inlining C function pointers"
@@ -1745,7 +1702,7 @@ done:
H5_ATTR_PURE H5S_sel_type
H5S_get_select_type(const H5S_t *space)
{
- H5S_sel_type ret_value = H5S_SEL_ERROR; /* Return value */
+ H5S_sel_type ret_value = H5S_SEL_ERROR; /* Return value */
FUNC_ENTER_NOAPI_NOINIT_NOERR
@@ -1758,7 +1715,6 @@ H5S_get_select_type(const H5S_t *space)
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_get_select_type() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_shape_same
@@ -1785,11 +1741,11 @@ H5S_get_select_type(const H5S_t *space)
htri_t
H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2)
{
- H5S_sel_iter_t *iter_a = NULL; /* Selection a iteration info */
- H5S_sel_iter_t *iter_b = NULL; /* Selection b iteration info */
- hbool_t iter_a_init = FALSE; /* Selection a iteration info has been initialized */
- hbool_t iter_b_init = FALSE; /* Selection b iteration info has been initialized */
- htri_t ret_value = TRUE; /* Return value */
+ H5S_sel_iter_t *iter_a = NULL; /* Selection a iteration info */
+ H5S_sel_iter_t *iter_b = NULL; /* Selection b iteration info */
+ hbool_t iter_a_init = FALSE; /* Selection a iteration info has been initialized */
+ hbool_t iter_b_init = FALSE; /* Selection b iteration info has been initialized */
+ htri_t ret_value = TRUE; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
@@ -1798,20 +1754,20 @@ H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2)
HDassert(space2);
/* Check for different number of elements selected */
- if(H5S_GET_SELECT_NPOINTS(space1) != H5S_GET_SELECT_NPOINTS(space2))
+ if (H5S_GET_SELECT_NPOINTS(space1) != H5S_GET_SELECT_NPOINTS(space2))
HGOTO_DONE(FALSE)
/* Check special cases if both dataspaces aren't scalar */
/* (If only one is, the number of selected points check is sufficient) */
- if(space1->extent.rank > 0 && space2->extent.rank > 0) {
- const H5S_t *space_a; /* Dataspace with larger rank */
- const H5S_t *space_b; /* Dataspace with smaller rank */
- unsigned space_a_rank; /* Number of dimensions of dataspace A */
- unsigned space_b_rank; /* Number of dimensions of dataspace B */
- int space_a_dim; /* Current dimension in dataspace A */
- int space_b_dim; /* Current dimension in dataspace B */
- H5S_sel_type sel_a_type; /* Selection type for dataspace A */
- H5S_sel_type sel_b_type; /* Selection type for dataspace B */
+ if (space1->extent.rank > 0 && space2->extent.rank > 0) {
+ const H5S_t *space_a; /* Dataspace with larger rank */
+ const H5S_t *space_b; /* Dataspace with smaller rank */
+ unsigned space_a_rank; /* Number of dimensions of dataspace A */
+ unsigned space_b_rank; /* Number of dimensions of dataspace B */
+ int space_a_dim; /* Current dimension in dataspace A */
+ int space_b_dim; /* Current dimension in dataspace B */
+ H5S_sel_type sel_a_type; /* Selection type for dataspace A */
+ H5S_sel_type sel_b_type; /* Selection type for dataspace B */
/* Need to be able to handle spaces of different rank:
*
@@ -1827,7 +1783,7 @@ H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2)
*
* Set all this up here.
*/
- if(space1->extent.rank >= space2->extent.rank) {
+ if (space1->extent.rank >= space2->extent.rank) {
space_a = space1;
space_b = space2;
} /* end if */
@@ -1845,29 +1801,30 @@ H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2)
sel_b_type = H5S_GET_SELECT_TYPE(space_b);
/* If selections aren't "none", compare their bounds */
- if(sel_a_type != H5S_SEL_NONE && sel_b_type != H5S_SEL_NONE) {
- hsize_t low_a[H5S_MAX_RANK]; /* Low bound of selection in dataspace a */
- hsize_t low_b[H5S_MAX_RANK]; /* Low bound of selection in dataspace b */
- hsize_t high_a[H5S_MAX_RANK]; /* High bound of selection in dataspace a */
- hsize_t high_b[H5S_MAX_RANK]; /* High bound of selection in dataspace b */
+ if (sel_a_type != H5S_SEL_NONE && sel_b_type != H5S_SEL_NONE) {
+ hsize_t low_a[H5S_MAX_RANK]; /* Low bound of selection in dataspace a */
+ hsize_t low_b[H5S_MAX_RANK]; /* Low bound of selection in dataspace b */
+ hsize_t high_a[H5S_MAX_RANK]; /* High bound of selection in dataspace a */
+ hsize_t high_b[H5S_MAX_RANK]; /* High bound of selection in dataspace b */
/* Get low & high bounds for both dataspaces */
- if(H5S_SELECT_BOUNDS(space_a, low_a, high_a) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get selection bounds for first dataspace")
- if(H5S_SELECT_BOUNDS(space_b, low_b, high_b) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get selection bounds for second dataspace")
+ if (H5S_SELECT_BOUNDS(space_a, low_a, high_a) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL,
+ "can't get selection bounds for first dataspace")
+ if (H5S_SELECT_BOUNDS(space_b, low_b, high_b) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL,
+ "can't get selection bounds for second dataspace")
/* Check that the range between the low & high bounds are the same */
space_a_dim = (int)space_a_rank - 1;
space_b_dim = (int)space_b_rank - 1;
- while(space_b_dim >= 0) {
+ while (space_b_dim >= 0) {
/* Sanity check */
HDassert(low_a[space_a_dim] <= high_a[space_a_dim]);
HDassert(low_a[space_b_dim] <= high_a[space_b_dim]);
/* Verify that the ranges are the same */
- if((high_a[space_a_dim] - low_a[space_a_dim])
- != (high_b[space_b_dim] - low_b[space_b_dim]))
+ if ((high_a[space_a_dim] - low_a[space_a_dim]) != (high_b[space_b_dim] - low_b[space_b_dim]))
HGOTO_DONE(FALSE)
/* Go to next dimension */
@@ -1876,45 +1833,45 @@ H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2)
} /* end while */
/* Check that the rest of the ranges in space a are "flat" */
- while(space_a_dim >= 0) {
+ while (space_a_dim >= 0) {
/* Sanity check */
HDassert(low_a[space_a_dim] <= high_a[space_a_dim]);
/* This range should be flat to be the same in a lower dimension */
- if(low_a[space_a_dim] != high_a[space_a_dim])
+ if (low_a[space_a_dim] != high_a[space_a_dim])
HGOTO_DONE(FALSE)
space_a_dim--;
} /* end while */
/* Check for a single block in each selection */
- if(H5S_SELECT_IS_SINGLE(space_a) && H5S_SELECT_IS_SINGLE(space_b)) {
+ if (H5S_SELECT_IS_SINGLE(space_a) && H5S_SELECT_IS_SINGLE(space_b)) {
/* If both selections are a single block and their bounds are
* the same, then the selections are the same, even if the
* selection types are different.
*/
HGOTO_DONE(TRUE)
} /* end if */
- } /* end if */
+ } /* end if */
/* If the dataspaces have the same selection type, use the selection's
* shape_same operator.
*/
- if(sel_a_type == sel_b_type)
+ if (sel_a_type == sel_b_type)
ret_value = (*space_a->select.type->shape_same)(space_a, space_b);
/* Otherwise, iterate through all the blocks in the selection */
else {
- hsize_t start_a[H5S_MAX_RANK]; /* Start point of selection block in dataspace a */
- hsize_t start_b[H5S_MAX_RANK]; /* Start point of selection block in dataspace b */
- hsize_t end_a[H5S_MAX_RANK]; /* End point of selection block in dataspace a */
- hsize_t end_b[H5S_MAX_RANK]; /* End point of selection block in dataspace b */
- hssize_t offset[H5S_MAX_RANK]; /* Offset of selection b blocks relative to selection a blocks */
- hbool_t first_block = TRUE; /* Flag to indicate the first block */
+ hsize_t start_a[H5S_MAX_RANK]; /* Start point of selection block in dataspace a */
+ hsize_t start_b[H5S_MAX_RANK]; /* Start point of selection block in dataspace b */
+ hsize_t end_a[H5S_MAX_RANK]; /* End point of selection block in dataspace a */
+ hsize_t end_b[H5S_MAX_RANK]; /* End point of selection block in dataspace b */
+ hssize_t offset[H5S_MAX_RANK]; /* Offset of selection b blocks relative to selection a blocks */
+ hbool_t first_block = TRUE; /* Flag to indicate the first block */
/* Allocate the selection iterators */
- if(NULL == (iter_a = H5FL_MALLOC(H5S_sel_iter_t)))
+ if (NULL == (iter_a = H5FL_MALLOC(H5S_sel_iter_t)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate selection iterator")
- if(NULL == (iter_b = H5FL_MALLOC(H5S_sel_iter_t)))
+ if (NULL == (iter_b = H5FL_MALLOC(H5S_sel_iter_t)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate selection iterator")
/* Initialize iterator for each dataspace selection
@@ -1922,21 +1879,21 @@ H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2)
* that the selection iterator shouldn't be "flattened", since we
* aren't actually going to be doing I/O with the iterators.
*/
- if(H5S_select_iter_init(iter_a, space_a, (size_t)0, 0) < 0)
+ if (H5S_select_iter_init(iter_a, space_a, (size_t)0, 0) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "unable to initialize selection iterator a")
iter_a_init = TRUE;
- if(H5S_select_iter_init(iter_b, space_b, (size_t)0, 0) < 0)
+ if (H5S_select_iter_init(iter_b, space_b, (size_t)0, 0) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "unable to initialize selection iterator b")
iter_b_init = TRUE;
/* Iterate over all the blocks in each selection */
- while(1) {
- htri_t status_a, status_b; /* Status from next block checks */
+ while (1) {
+ htri_t status_a, status_b; /* Status from next block checks */
/* Get the current block for each selection iterator */
- if(H5S_SELECT_ITER_BLOCK(iter_a, start_a, end_a) < 0)
+ if (H5S_SELECT_ITER_BLOCK(iter_a, start_a, end_a) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "unable to get iterator block a")
- if(H5S_SELECT_ITER_BLOCK(iter_b, start_b, end_b) < 0)
+ if (H5S_SELECT_ITER_BLOCK(iter_b, start_b, end_b) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "unable to get iterator block b")
space_a_dim = (int)space_a_rank - 1;
@@ -1945,13 +1902,13 @@ H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2)
/* The first block only compares the sizes and sets the
* relative offsets for later blocks
*/
- if(first_block) {
+ if (first_block) {
/* If the block sizes in the common dimensions from
* each selection don't match, get out
*/
- while(space_b_dim >= 0) {
- if((end_a[space_a_dim] - start_a[space_a_dim]) !=
- (end_b[space_b_dim] - start_b[space_b_dim]))
+ while (space_b_dim >= 0) {
+ if ((end_a[space_a_dim] - start_a[space_a_dim]) !=
+ (end_b[space_b_dim] - start_b[space_b_dim]))
HGOTO_DONE(FALSE)
/* Set the relative locations of the selections */
@@ -1964,8 +1921,8 @@ H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2)
/* Similarly, if the block size in any dimension that appears only
* in space_a is not equal to 1, get out.
*/
- while(space_a_dim >= 0) {
- if(start_a[space_a_dim] != end_a[space_a_dim])
+ while (space_a_dim >= 0) {
+ if (start_a[space_a_dim] != end_a[space_a_dim])
HGOTO_DONE(FALSE)
space_a_dim--;
@@ -1977,14 +1934,15 @@ H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2)
/* Check over the blocks for each selection */
else {
/* For dimensions that space_a and space_b have in common: */
- while(space_b_dim >= 0) {
+ while (space_b_dim >= 0) {
/* Check if the blocks are in the same relative location */
- if((hsize_t)((hssize_t)start_a[space_a_dim] + offset[space_a_dim]) != start_b[space_b_dim])
+ if ((hsize_t)((hssize_t)start_a[space_a_dim] + offset[space_a_dim]) !=
+ start_b[space_b_dim])
HGOTO_DONE(FALSE)
/* If the block sizes from each selection doesn't match, get out */
- if((end_a[space_a_dim] - start_a[space_a_dim]) !=
- (end_b[space_b_dim] - start_b[space_b_dim]))
+ if ((end_a[space_a_dim] - start_a[space_a_dim]) !=
+ (end_b[space_b_dim] - start_b[space_b_dim]))
HGOTO_DONE(FALSE)
space_a_dim--;
@@ -1992,53 +1950,54 @@ H5S_select_shape_same(const H5S_t *space1, const H5S_t *space2)
} /* end while */
/* For dimensions that appear only in space_a: */
- while(space_a_dim >= 0) {
+ while (space_a_dim >= 0) {
/* If the block size isn't 1, get out */
- if(start_a[space_a_dim] != end_a[space_a_dim])
+ if (start_a[space_a_dim] != end_a[space_a_dim])
HGOTO_DONE(FALSE)
space_a_dim--;
} /* end while */
- } /* end else */
+ } /* end else */
/* Check if we are able to advance to the next selection block */
- if((status_a = H5S_SELECT_ITER_HAS_NEXT_BLOCK(iter_a)) < 0)
+ if ((status_a = H5S_SELECT_ITER_HAS_NEXT_BLOCK(iter_a)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL, "unable to check iterator block a")
- if((status_b = H5S_SELECT_ITER_HAS_NEXT_BLOCK(iter_b)) < 0)
+ if ((status_b = H5S_SELECT_ITER_HAS_NEXT_BLOCK(iter_b)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL, "unable to check iterator block b")
/* Did we run out of blocks at the same time? */
- if((status_a == FALSE) && (status_b == FALSE))
+ if ((status_a == FALSE) && (status_b == FALSE))
break;
- else if(status_a != status_b)
+ else if (status_a != status_b)
HGOTO_DONE(FALSE)
else {
/* Advance to next block in selection iterators */
- if(H5S_SELECT_ITER_NEXT_BLOCK(iter_a) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL, "unable to advance to next iterator block a")
+ if (H5S_SELECT_ITER_NEXT_BLOCK(iter_a) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL,
+ "unable to advance to next iterator block a")
- if(H5S_SELECT_ITER_NEXT_BLOCK(iter_b) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL, "unable to advance to next iterator block b")
+ if (H5S_SELECT_ITER_NEXT_BLOCK(iter_b) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL,
+ "unable to advance to next iterator block b")
} /* end else */
- } /* end while */
- } /* end else */
- } /* end if */
+ } /* end while */
+ } /* end else */
+ } /* end if */
done:
- if(iter_a_init && H5S_SELECT_ITER_RELEASE(iter_a) < 0)
+ if (iter_a_init && H5S_SELECT_ITER_RELEASE(iter_a) < 0)
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release selection iterator a")
- if(iter_a)
+ if (iter_a)
iter_a = H5FL_FREE(H5S_sel_iter_t, iter_a);
- if(iter_b_init && H5S_SELECT_ITER_RELEASE(iter_b) < 0)
+ if (iter_b_init && H5S_SELECT_ITER_RELEASE(iter_b) < 0)
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release selection iterator b")
- if(iter_b)
+ if (iter_b)
iter_b = H5FL_FREE(H5S_sel_iter_t, iter_b);
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_shape_same() */
-
/*--------------------------------------------------------------------------
NAME
H5Sselect_shape_same
@@ -2062,25 +2021,24 @@ done:
htri_t
H5Sselect_shape_same(hid_t space1_id, hid_t space2_id)
{
- H5S_t *space1, *space2; /* Dataspaces to compare */
- htri_t ret_value; /* Return value */
+ H5S_t *space1, *space2; /* Dataspaces to compare */
+ htri_t ret_value; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE2("t", "ii", space1_id, space2_id);
- if(NULL == (space1 = (H5S_t *)H5I_object_verify(space1_id, H5I_DATASPACE)))
+ if (NULL == (space1 = (H5S_t *)H5I_object_verify(space1_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace")
- if(NULL == (space2 = (H5S_t *)H5I_object_verify(space2_id, H5I_DATASPACE)))
+ if (NULL == (space2 = (H5S_t *)H5I_object_verify(space2_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace")
- if((ret_value = H5S_select_shape_same(space1, space2)) < 0)
+ if ((ret_value = H5S_select_shape_same(space1, space2)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOMPARE, FAIL, "can't compare selections")
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Sselect_shape_same() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_intersect_block
@@ -2105,10 +2063,9 @@ done:
don't call it directly, use the appropriate macro defined in H5Sprivate.h.
--------------------------------------------------------------------------*/
htri_t
-H5S_select_intersect_block(const H5S_t *space, const hsize_t *start,
- const hsize_t *end)
+H5S_select_intersect_block(const H5S_t *space, const hsize_t *start, const hsize_t *end)
{
- htri_t ret_value = TRUE; /* Return value */
+ htri_t ret_value = TRUE; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
@@ -2118,31 +2075,30 @@ H5S_select_intersect_block(const H5S_t *space, const hsize_t *start,
HDassert(end);
/* If selections aren't "none", compare their bounds */
- if(H5S_SEL_NONE != H5S_GET_SELECT_TYPE(space)) {
- hsize_t low[H5S_MAX_RANK]; /* Low bound of selection in dataspace */
- hsize_t high[H5S_MAX_RANK]; /* High bound of selection in dataspace */
- unsigned u; /* Local index variable */
+ if (H5S_SEL_NONE != H5S_GET_SELECT_TYPE(space)) {
+ hsize_t low[H5S_MAX_RANK]; /* Low bound of selection in dataspace */
+ hsize_t high[H5S_MAX_RANK]; /* High bound of selection in dataspace */
+ unsigned u; /* Local index variable */
/* Get low & high bounds for dataspace selection */
- if(H5S_SELECT_BOUNDS(space, low, high) < 0)
+ if (H5S_SELECT_BOUNDS(space, low, high) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get selection bounds for dataspace")
/* Loop over selection bounds and block, checking for overlap */
- for(u = 0; u < space->extent.rank; u++)
+ for (u = 0; u < space->extent.rank; u++)
/* If selection bounds & block don't overlap, can leave now */
- if(!H5S_RANGE_OVERLAP(low[u], high[u], start[u], end[u]))
+ if (!H5S_RANGE_OVERLAP(low[u], high[u], start[u], end[u]))
HGOTO_DONE(FALSE)
} /* end if */
/* Call selection type's intersect routine */
- if((ret_value = (*space->select.type->intersect_block)(space, start, end)) < 0)
+ if ((ret_value = (*space->select.type->intersect_block)(space, start, end)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOMPARE, FAIL, "can't intersect block with selection")
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_intersect_block() */
-
/*--------------------------------------------------------------------------
NAME
H5Sselect_intersect_block
@@ -2168,35 +2124,35 @@ done:
htri_t
H5Sselect_intersect_block(hid_t space_id, const hsize_t *start, const hsize_t *end)
{
- H5S_t *space; /* Dataspace to query */
- unsigned u; /* Local index value */
- htri_t ret_value = FAIL; /* Return value */
+ H5S_t * space; /* Dataspace to query */
+ unsigned u; /* Local index value */
+ htri_t ret_value = FAIL; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE3("t", "i*h*h", space_id, start, end);
/* Check arguments */
- if(NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
+ if (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace")
- if(NULL == start)
+ if (NULL == start)
HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "block start array pointer is NULL")
- if(NULL == end)
+ if (NULL == end)
HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "block end array pointer is NULL")
/* Range check start & end values */
- for(u = 0; u < space->extent.rank; u++)
- if(start[u] > end[u])
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "block start[%u] (%llu) > end[%u] (%llu)", u, (unsigned long long)start[u], u, (unsigned long long)end[u])
+ for (u = 0; u < space->extent.rank; u++)
+ if (start[u] > end[u])
+ HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "block start[%u] (%llu) > end[%u] (%llu)", u,
+ (unsigned long long)start[u], u, (unsigned long long)end[u])
/* Call internal routine to do comparison */
- if((ret_value = H5S_select_intersect_block(space, start, end)) < 0)
+ if ((ret_value = H5S_select_intersect_block(space, start, end)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOMPARE, FAIL, "can't compare selection and block")
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Sselect_intersect_block() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_construct_projection
@@ -2227,15 +2183,15 @@ done:
adj_buf_ptr)
const H5S_t *base_space; IN: Ptr to Dataspace to project
H5S_t ** new_space_ptr; OUT: Ptr to location in which to return
- the address of the projected space
+ the address of the projected space
int new_space_rank; IN: Rank of the projected space.
const void * buf; IN: Base address of the buffer
- associated with the base space.
- May be NULL.
+ associated with the base space.
+ May be NULL.
void ** adj_buf_ptr; OUT: If buf != NULL, store the base
- address of the section of buf
- that is described by *new_space_ptr
- in *adj_buf_ptr.
+ address of the section of buf
+ that is described by *new_space_ptr
+ in *adj_buf_ptr.
RETURNS
Non-negative on success/Negative on failure.
@@ -2258,45 +2214,46 @@ done:
REVISION LOG
--------------------------------------------------------------------------*/
herr_t
-H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr,
- unsigned new_space_rank, const void *buf, void const **adj_buf_ptr, hsize_t element_size)
+H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr, unsigned new_space_rank,
+ const void *buf, void const **adj_buf_ptr, hsize_t element_size)
{
- H5S_t * new_space = NULL; /* New dataspace constructed */
- hsize_t base_space_dims[H5S_MAX_RANK]; /* Current dimensions of base dataspace */
- hsize_t base_space_maxdims[H5S_MAX_RANK]; /* Maximum dimensions of base dataspace */
- int sbase_space_rank; /* Signed # of dimensions of base dataspace */
- unsigned base_space_rank; /* # of dimensions of base dataspace */
- hsize_t projected_space_element_offset = 0; /* Offset of selected element in projected buffer */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5S_t * new_space = NULL; /* New dataspace constructed */
+ hsize_t base_space_dims[H5S_MAX_RANK]; /* Current dimensions of base dataspace */
+ hsize_t base_space_maxdims[H5S_MAX_RANK]; /* Maximum dimensions of base dataspace */
+ int sbase_space_rank; /* Signed # of dimensions of base dataspace */
+ unsigned base_space_rank; /* # of dimensions of base dataspace */
+ hsize_t projected_space_element_offset = 0; /* Offset of selected element in projected buffer */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
/* Sanity checks */
HDassert(base_space != NULL);
- HDassert((H5S_GET_EXTENT_TYPE(base_space) == H5S_SCALAR) || (H5S_GET_EXTENT_TYPE(base_space) == H5S_SIMPLE));
+ HDassert((H5S_GET_EXTENT_TYPE(base_space) == H5S_SCALAR) ||
+ (H5S_GET_EXTENT_TYPE(base_space) == H5S_SIMPLE));
HDassert(new_space_ptr != NULL);
HDassert((new_space_rank != 0) || (H5S_GET_SELECT_NPOINTS(base_space) <= 1));
HDassert(new_space_rank <= H5S_MAX_RANK);
HDassert((buf == NULL) || (adj_buf_ptr != NULL));
- HDassert(element_size > 0 );
+ HDassert(element_size > 0);
/* Get the extent info for the base dataspace */
- if((sbase_space_rank = H5S_get_simple_extent_dims(base_space, base_space_dims, base_space_maxdims)) < 0)
+ if ((sbase_space_rank = H5S_get_simple_extent_dims(base_space, base_space_dims, base_space_maxdims)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "unable to get dimensionality of base space")
base_space_rank = (unsigned)sbase_space_rank;
HDassert(base_space_rank != new_space_rank);
/* Check if projected space is scalar */
- if(new_space_rank == 0) {
- hssize_t npoints; /* Number of points selected */
+ if (new_space_rank == 0) {
+ hssize_t npoints; /* Number of points selected */
/* Retreve the number of elements selected */
- if((npoints = (hssize_t)H5S_GET_SELECT_NPOINTS(base_space)) < 0)
+ if ((npoints = (hssize_t)H5S_GET_SELECT_NPOINTS(base_space)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "unable to get number of points selected")
HDassert(npoints <= 1);
/* Create new scalar dataspace */
- if(NULL == (new_space = H5S_create(H5S_SCALAR)))
+ if (NULL == (new_space = H5S_create(H5S_SCALAR)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCREATE, FAIL, "unable to create scalar dataspace")
/* No need to register the dataspace(i.e. get an ID) as
@@ -2312,7 +2269,7 @@ H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr,
* same shape as the file dataspace, and that data
* space is scalar.
*/
- if(1 == npoints) {
+ if (1 == npoints) {
/* Assuming that the selection in the base dataspace is not
* empty, we must compute the offset of the selected item in
* the buffer associated with the base dataspace.
@@ -2323,20 +2280,20 @@ H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr,
* selection, may be either point, hyperspace, or all.
*
*/
- if(H5S_SELECT_PROJECT_SCALAR(base_space, &projected_space_element_offset) < 0)
+ if (H5S_SELECT_PROJECT_SCALAR(base_space, &projected_space_element_offset) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSET, FAIL, "unable to project scalar selection")
} /* end if */
else {
HDassert(0 == npoints);
- if(H5S_select_none(new_space) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't delete default selection")
- } /* end else */
- } /* end if */
- else { /* projected space must be simple */
- hsize_t new_space_dims[H5S_MAX_RANK]; /* Current dimensions for new dataspace */
- hsize_t new_space_maxdims[H5S_MAX_RANK];/* Maximum dimensions for new dataspace */
- unsigned rank_diff; /* Difference in ranks */
+ if (H5S_select_none(new_space) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't delete default selection")
+ } /* end else */
+ } /* end if */
+ else { /* projected space must be simple */
+ hsize_t new_space_dims[H5S_MAX_RANK]; /* Current dimensions for new dataspace */
+ hsize_t new_space_maxdims[H5S_MAX_RANK]; /* Maximum dimensions for new dataspace */
+ unsigned rank_diff; /* Difference in ranks */
/* Set up the dimensions of the new, projected dataspace.
*
@@ -2366,8 +2323,8 @@ H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr,
* only in the higher rank dataspace (i.e. those with
* more slowly changing indicies).
*/
- if(new_space_rank > base_space_rank) {
- hsize_t tmp_dim_size = 1; /* Temporary dimension value, for filling arrays */
+ if (new_space_rank > base_space_rank) {
+ hsize_t tmp_dim_size = 1; /* Temporary dimension value, for filling arrays */
/* we must copy the dimensions of the base space into
* the fastest changing dimensions of the new space,
@@ -2376,22 +2333,26 @@ H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr,
rank_diff = new_space_rank - base_space_rank;
H5VM_array_fill(new_space_dims, &tmp_dim_size, sizeof(tmp_dim_size), rank_diff);
H5VM_array_fill(new_space_maxdims, &tmp_dim_size, sizeof(tmp_dim_size), rank_diff);
- H5MM_memcpy(&new_space_dims[rank_diff], base_space_dims, sizeof(new_space_dims[0]) * base_space_rank);
- H5MM_memcpy(&new_space_maxdims[rank_diff], base_space_maxdims, sizeof(new_space_maxdims[0]) * base_space_rank);
- } /* end if */
+ H5MM_memcpy(&new_space_dims[rank_diff], base_space_dims,
+ sizeof(new_space_dims[0]) * base_space_rank);
+ H5MM_memcpy(&new_space_maxdims[rank_diff], base_space_maxdims,
+ sizeof(new_space_maxdims[0]) * base_space_rank);
+ } /* end if */
else { /* new_space_rank < base_space_rank */
/* we must copy the fastest changing dimension of the
* base space into the dimensions of the new space.
*/
rank_diff = base_space_rank - new_space_rank;
- H5MM_memcpy(new_space_dims, &base_space_dims[rank_diff], sizeof(new_space_dims[0]) * new_space_rank);
- H5MM_memcpy(new_space_maxdims, &base_space_maxdims[rank_diff], sizeof(new_space_maxdims[0]) * new_space_rank);
+ H5MM_memcpy(new_space_dims, &base_space_dims[rank_diff],
+ sizeof(new_space_dims[0]) * new_space_rank);
+ H5MM_memcpy(new_space_maxdims, &base_space_maxdims[rank_diff],
+ sizeof(new_space_maxdims[0]) * new_space_rank);
} /* end else */
/* now have the new space rank and dimensions set up --
* so we can create the new simple dataspace.
*/
- if(NULL == (new_space = H5S_create_simple(new_space_rank, new_space_dims, new_space_maxdims)))
+ if (NULL == (new_space = H5S_create_simple(new_space_rank, new_space_dims, new_space_maxdims)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCREATE, FAIL, "can't create simple dataspace")
/* No need to register the dataspace(i.e. get an ID) as
@@ -2402,7 +2363,7 @@ H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr,
* dataspace. We must now project the selection in the base
* dataspace into the projected dataspace.
*/
- if(H5S_SELECT_PROJECT_SIMPLE(base_space, new_space, &projected_space_element_offset) < 0)
+ if (H5S_SELECT_PROJECT_SIMPLE(base_space, new_space, &projected_space_element_offset) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSET, FAIL, "unable to project simple selection")
/* If we get this far, we have created the new dataspace, and projected
@@ -2413,18 +2374,20 @@ H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr,
* project the offset into the new dataspace and set the
* offset_changed flag.
*/
- if(H5S_GET_EXTENT_TYPE(base_space) == H5S_SIMPLE && base_space->select.offset_changed) {
- if(new_space_rank > base_space_rank) {
+ if (H5S_GET_EXTENT_TYPE(base_space) == H5S_SIMPLE && base_space->select.offset_changed) {
+ if (new_space_rank > base_space_rank) {
HDmemset(new_space->select.offset, 0, sizeof(new_space->select.offset[0]) * rank_diff);
- H5MM_memcpy(&new_space->select.offset[rank_diff], base_space->select.offset, sizeof(new_space->select.offset[0]) * base_space_rank);
+ H5MM_memcpy(&new_space->select.offset[rank_diff], base_space->select.offset,
+ sizeof(new_space->select.offset[0]) * base_space_rank);
} /* end if */
else
- H5MM_memcpy(new_space->select.offset, &base_space->select.offset[rank_diff], sizeof(new_space->select.offset[0]) * new_space_rank);
+ H5MM_memcpy(new_space->select.offset, &base_space->select.offset[rank_diff],
+ sizeof(new_space->select.offset[0]) * new_space_rank);
/* Propagate the offset changed flag into the new dataspace. */
new_space->select.offset_changed = TRUE;
} /* end if */
- } /* end else */
+ } /* end else */
/* If we have done the projection correctly, the following assertion
* should hold.
@@ -2435,8 +2398,8 @@ H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr,
*new_space_ptr = new_space;
/* now adjust the buffer if required */
- if(buf != NULL) {
- if(new_space_rank < base_space_rank) {
+ if (buf != NULL) {
+ if (new_space_rank < base_space_rank) {
/* a bit of pointer magic here:
*
* Since we can't do pointer arithmetic on void pointers, we first
@@ -2448,7 +2411,7 @@ H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr,
* to a pointer to void, and assign the result to *adj_buf_ptr.
*/
*adj_buf_ptr = (const void *)(((const uint8_t *)buf) +
- ((size_t)(projected_space_element_offset * element_size)));
+ ((size_t)(projected_space_element_offset * element_size)));
} /* end if */
else
/* No adjustment necessary */
@@ -2457,14 +2420,13 @@ H5S_select_construct_projection(const H5S_t *base_space, H5S_t **new_space_ptr,
done:
/* Cleanup on error */
- if(ret_value < 0)
- if(new_space && H5S_close(new_space) < 0)
+ if (ret_value < 0)
+ if (new_space && H5S_close(new_space) < 0)
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release dataspace")
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_construct_projection() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_fill
@@ -2492,13 +2454,13 @@ done:
herr_t
H5S_select_fill(const void *fill, size_t fill_size, const H5S_t *space, void *_buf)
{
- H5S_sel_iter_t *iter = NULL; /* Selection iteration info */
- hbool_t iter_init = FALSE; /* Selection iteration info has been initialized */
- hsize_t *off = NULL; /* Array to store sequence offsets */
- size_t *len = NULL; /* Array to store sequence lengths */
- hssize_t nelmts; /* Number of elements in selection */
- size_t max_elem; /* Total number of elements in selection */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5S_sel_iter_t *iter = NULL; /* Selection iteration info */
+ hbool_t iter_init = FALSE; /* Selection iteration info has been initialized */
+ hsize_t * off = NULL; /* Array to store sequence offsets */
+ size_t * len = NULL; /* Array to store sequence lengths */
+ hssize_t nelmts; /* Number of elements in selection */
+ size_t max_elem; /* Total number of elements in selection */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
@@ -2509,40 +2471,41 @@ H5S_select_fill(const void *fill, size_t fill_size, const H5S_t *space, void *_b
HDassert(_buf);
/* Allocate the selection iterator */
- if(NULL == (iter = H5FL_MALLOC(H5S_sel_iter_t)))
+ if (NULL == (iter = H5FL_MALLOC(H5S_sel_iter_t)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate selection iterator")
/* Initialize iterator */
- if(H5S_select_iter_init(iter, space, fill_size, 0) < 0)
+ if (H5S_select_iter_init(iter, space, fill_size, 0) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "unable to initialize selection iterator")
- iter_init = TRUE; /* Selection iteration info has been initialized */
+ iter_init = TRUE; /* Selection iteration info has been initialized */
/* Get the number of elements in selection */
- if((nelmts = (hssize_t)H5S_GET_SELECT_NPOINTS(space)) < 0)
+ if ((nelmts = (hssize_t)H5S_GET_SELECT_NPOINTS(space)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOUNT, FAIL, "can't get number of elements selected")
/* Compute the number of bytes to process */
H5_CHECKED_ASSIGN(max_elem, size_t, nelmts, hssize_t);
/* Allocate the offset & length arrays */
- if(NULL == (len = H5FL_SEQ_MALLOC(size_t, H5D_IO_VECTOR_SIZE)))
+ if (NULL == (len = H5FL_SEQ_MALLOC(size_t, H5D_IO_VECTOR_SIZE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate length vector array")
- if(NULL == (off = H5FL_SEQ_MALLOC(hsize_t, H5D_IO_VECTOR_SIZE)))
+ if (NULL == (off = H5FL_SEQ_MALLOC(hsize_t, H5D_IO_VECTOR_SIZE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate offset vector array")
/* Loop, while elements left in selection */
- while(max_elem > 0) {
- size_t nseq; /* Number of sequences generated */
- size_t curr_seq; /* Current sequnce being worked on */
- size_t nelem; /* Number of elements used in sequences */
+ while (max_elem > 0) {
+ size_t nseq; /* Number of sequences generated */
+ size_t curr_seq; /* Current sequnce being worked on */
+ size_t nelem; /* Number of elements used in sequences */
/* Get the sequences of bytes */
- if(H5S_SELECT_ITER_GET_SEQ_LIST(iter, (size_t)H5D_IO_VECTOR_SIZE, max_elem, &nseq, &nelem, off, len) < 0)
+ if (H5S_SELECT_ITER_GET_SEQ_LIST(iter, (size_t)H5D_IO_VECTOR_SIZE, max_elem, &nseq, &nelem, off,
+ len) < 0)
HGOTO_ERROR(H5E_INTERNAL, H5E_UNSUPPORTED, FAIL, "sequence length generation failed")
/* Loop over sequences */
- for(curr_seq = 0; curr_seq < nseq; curr_seq++) {
- uint8_t *buf; /* Current location in buffer */
+ for (curr_seq = 0; curr_seq < nseq; curr_seq++) {
+ uint8_t *buf; /* Current location in buffer */
/* Get offset in memory buffer */
buf = (uint8_t *)_buf + off[curr_seq];
@@ -2558,21 +2521,20 @@ H5S_select_fill(const void *fill, size_t fill_size, const H5S_t *space, void *_b
done:
/* Release resources, if allocated */
- if(len)
+ if (len)
len = H5FL_SEQ_FREE(size_t, len);
- if(off)
+ if (off)
off = H5FL_SEQ_FREE(hsize_t, off);
/* Release selection iterator */
- if(iter_init && H5S_SELECT_ITER_RELEASE(iter) < 0)
+ if (iter_init && H5S_SELECT_ITER_RELEASE(iter) < 0)
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release selection iterator")
- if(iter)
+ if (iter)
iter = H5FL_FREE(H5S_sel_iter_t, iter);
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_fill() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_project_intersection
@@ -2584,11 +2546,12 @@ done:
USAGE
herr_t H5S_select_project_intersection(src_space,dst_space,src_intersect_space,proj_space,share_selection)
- H5S_t *src_space; IN: Selection that is mapped to dst_space, and intersected with src_intersect_space
- H5S_t *dst_space; IN: Selection that is mapped to src_space
- H5S_t *src_intersect_space; IN: Selection whose intersection with src_space is projected to dst_space to obtain the result
- H5S_t **new_space_ptr; OUT: Will contain the result (intersection of src_intersect_space and src_space projected from src_space to dst_space) after the operation
- hbool_t share_selection; IN: Whether we are allowed to share structures inside dst_space with proj_space
+ H5S_t *src_space; IN: Selection that is mapped to dst_space, and intersected with
+src_intersect_space H5S_t *dst_space; IN: Selection that is mapped to src_space H5S_t
+*src_intersect_space; IN: Selection whose intersection with src_space is projected to dst_space to obtain the
+result H5S_t **new_space_ptr; OUT: Will contain the result (intersection of src_intersect_space and src_space
+projected from src_space to dst_space) after the operation hbool_t share_selection; IN: Whether we are allowed
+to share structures inside dst_space with proj_space
RETURNS
Non-negative on success/Negative on failure.
@@ -2606,16 +2569,16 @@ done:
--------------------------------------------------------------------------*/
herr_t
H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
- const H5S_t *src_intersect_space, H5S_t **new_space_ptr,
- hbool_t share_selection)
+ const H5S_t *src_intersect_space, H5S_t **new_space_ptr,
+ hbool_t share_selection)
{
- H5S_t *new_space = NULL; /* New dataspace constructed */
- H5S_t *tmp_src_intersect_space = NULL; /* Temporary SIS converted from points->hyperslabs */
- H5S_sel_iter_t *ss_iter = NULL; /* Selection iterator for src_space */
- hbool_t ss_iter_init = FALSE; /* Whether ss_iter has been initialized */
- H5S_sel_iter_t *ds_iter = NULL; /* Selection iterator for dst_space */
- hbool_t ds_iter_init = FALSE; /* Whether ds_iter has been initialized */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5S_t * new_space = NULL; /* New dataspace constructed */
+ H5S_t * tmp_src_intersect_space = NULL; /* Temporary SIS converted from points->hyperslabs */
+ H5S_sel_iter_t *ss_iter = NULL; /* Selection iterator for src_space */
+ hbool_t ss_iter_init = FALSE; /* Whether ss_iter has been initialized */
+ H5S_sel_iter_t *ds_iter = NULL; /* Selection iterator for dst_space */
+ hbool_t ds_iter_init = FALSE; /* Whether ds_iter has been initialized */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
@@ -2627,31 +2590,30 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
HDassert(H5S_GET_SELECT_NPOINTS(src_space) == H5S_GET_SELECT_NPOINTS(dst_space));
HDassert(H5S_GET_EXTENT_NDIMS(src_space) == H5S_GET_EXTENT_NDIMS(src_intersect_space));
- if(NULL == (ss_iter = H5FL_CALLOC(H5S_sel_iter_t)))
+ if (NULL == (ss_iter = H5FL_CALLOC(H5S_sel_iter_t)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate selection iterator")
- if(NULL == (ds_iter = H5FL_CALLOC(H5S_sel_iter_t)))
+ if (NULL == (ds_iter = H5FL_CALLOC(H5S_sel_iter_t)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, FAIL, "can't allocate selection iterator")
/* Create new space, using dst extent. Start with "all" selection. */
- if(NULL == (new_space = H5S_create(H5S_SIMPLE)))
+ if (NULL == (new_space = H5S_create(H5S_SIMPLE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCREATE, FAIL, "unable to create output dataspace")
- if(H5S__extent_copy_real(&new_space->extent, &dst_space->extent, TRUE) < 0)
+ if (H5S__extent_copy_real(&new_space->extent, &dst_space->extent, TRUE) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOPY, FAIL, "unable to copy destination space extent")
/* If the intersecting space is "all", the intersection must be equal to the
* source space and the projection must be equal to the destination space */
- if(H5S_GET_SELECT_TYPE(src_intersect_space) == H5S_SEL_ALL) {
+ if (H5S_GET_SELECT_TYPE(src_intersect_space) == H5S_SEL_ALL) {
/* Copy the destination selection. */
- if(H5S_select_copy(new_space, dst_space, FALSE) < 0)
+ if (H5S_select_copy(new_space, dst_space, FALSE) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOPY, FAIL, "can't copy destination space selection")
} /* end if */
/* If any of the selections contain no elements, the projection must be
* "none" */
- else if((H5S_GET_SELECT_NPOINTS(src_intersect_space) == 0)
- || (H5S_GET_SELECT_NPOINTS(src_space) == 0)
- || (H5S_GET_SELECT_NPOINTS(dst_space) == 0)) {
+ else if ((H5S_GET_SELECT_NPOINTS(src_intersect_space) == 0) || (H5S_GET_SELECT_NPOINTS(src_space) == 0) ||
+ (H5S_GET_SELECT_NPOINTS(dst_space) == 0)) {
/* Change to "none" selection */
- if(H5S_select_none(new_space) < 0)
+ if (H5S_select_none(new_space) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection")
} /* end if */
else {
@@ -2667,28 +2629,28 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
/* Check for scalar dst_space. In this case we simply check if the
* (single) point selected in src_space intersects src_intersect_space,
* if so select all in new_space, otherwise select none. */
- if(H5S_GET_EXTENT_TYPE(dst_space) == H5S_SCALAR) {
+ if (H5S_GET_EXTENT_TYPE(dst_space) == H5S_SCALAR) {
hsize_t coords_start[H5S_MAX_RANK];
hsize_t coords_end[H5S_MAX_RANK];
- htri_t intersect;
+ htri_t intersect;
/* Get source space bounds. Should be a single point. */
- if(H5S_SELECT_BOUNDS(src_space, coords_start, coords_end) < 0)
+ if (H5S_SELECT_BOUNDS(src_space, coords_start, coords_end) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get source space bounds")
- HDassert(0 == HDmemcmp(coords_start, coords_end, H5S_GET_EXTENT_NDIMS(src_space) * sizeof(coords_start[0])));
+ HDassert(0 == HDmemcmp(coords_start, coords_end,
+ H5S_GET_EXTENT_NDIMS(src_space) * sizeof(coords_start[0])));
/* Check for intersection */
- if((intersect = H5S_SELECT_INTERSECT_BLOCK(src_intersect_space, coords_start, coords_end)) < 0)
+ if ((intersect = H5S_SELECT_INTERSECT_BLOCK(src_intersect_space, coords_start, coords_end)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOMPARE, FAIL, "can't check for intersection")
/* Select all or none as appropriate */
- if(intersect) {
- if(H5S_select_all(new_space, TRUE) < 0)
+ if (intersect) {
+ if (H5S_select_all(new_space, TRUE) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSET, FAIL, "can't select all")
} /* end if */
- else
- if(H5S_select_none(new_space) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection")
+ else if (H5S_select_none(new_space) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection")
} /* end if */
else {
/* If the source intersect space is a point selection, convert it to a
@@ -2697,20 +2659,26 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
/* Maybe we should just leave it as a point selection for the point by
* point algorithm? The search through the selection in
* H5S_SELECT_INTERSECT_BLOCK will likely be O(N) either way. -NAF */
- if(H5S_GET_SELECT_TYPE(src_intersect_space) == H5S_SEL_POINTS) {
+ if (H5S_GET_SELECT_TYPE(src_intersect_space) == H5S_SEL_POINTS) {
H5S_pnt_node_t *curr_pnt = src_intersect_space->select.sel_info.pnt_lst->head;
/* Create dataspace and copy extent */
- if(NULL == (tmp_src_intersect_space = H5S_create(H5S_SIMPLE)))
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCREATE, FAIL, "unable to create temporary source intersect dataspace")
- if(H5S__extent_copy_real(&tmp_src_intersect_space->extent, &src_intersect_space->extent, FALSE) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOPY, FAIL, "unable to copy source intersect space extent")
+ if (NULL == (tmp_src_intersect_space = H5S_create(H5S_SIMPLE)))
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCREATE, FAIL,
+ "unable to create temporary source intersect dataspace")
+ if (H5S__extent_copy_real(&tmp_src_intersect_space->extent, &src_intersect_space->extent,
+ FALSE) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOPY, FAIL,
+ "unable to copy source intersect space extent")
/* Iterate over points */
- for(curr_pnt = src_intersect_space->select.sel_info.pnt_lst->head; curr_pnt; curr_pnt = curr_pnt->next)
+ for (curr_pnt = src_intersect_space->select.sel_info.pnt_lst->head; curr_pnt;
+ curr_pnt = curr_pnt->next)
/* Add point to hyperslab selection */
- if(H5S_hyper_add_span_element(tmp_src_intersect_space, src_intersect_space->extent.rank, curr_pnt->pnt) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSELECT, FAIL, "can't add point to temporary dataspace selection")
+ if (H5S_hyper_add_span_element(tmp_src_intersect_space, src_intersect_space->extent.rank,
+ curr_pnt->pnt) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSELECT, FAIL,
+ "can't add point to temporary dataspace selection")
/* Redirect local src_intersect_space pointer (will not affect
* calling function) */
@@ -2722,21 +2690,23 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
/* If either the source space or the destination space is a point
* selection, iterate element by element */
- if((H5S_GET_SELECT_TYPE(src_space) == H5S_SEL_POINTS)
- || (H5S_GET_SELECT_TYPE(dst_space) == H5S_SEL_POINTS)) {
+ if ((H5S_GET_SELECT_TYPE(src_space) == H5S_SEL_POINTS) ||
+ (H5S_GET_SELECT_TYPE(dst_space) == H5S_SEL_POINTS)) {
hsize_t coords[H5S_MAX_RANK];
- htri_t intersect;
+ htri_t intersect;
/* Start with "none" selection */
- if(H5S_select_none(new_space) < 0)
+ if (H5S_select_none(new_space) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection")
/* Initialize iterators */
- if(H5S_select_iter_init(ss_iter, src_space, 1, H5S_SEL_ITER_SHARE_WITH_DATASPACE) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "can't initialize source space selection iterator")
+ if (H5S_select_iter_init(ss_iter, src_space, 1, H5S_SEL_ITER_SHARE_WITH_DATASPACE) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL,
+ "can't initialize source space selection iterator")
ss_iter_init = TRUE;
- if(H5S_select_iter_init(ds_iter, dst_space, 1, H5S_SEL_ITER_SHARE_WITH_DATASPACE) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "can't initialize destination space selection iterator")
+ if (H5S_select_iter_init(ds_iter, dst_space, 1, H5S_SEL_ITER_SHARE_WITH_DATASPACE) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL,
+ "can't initialize destination space selection iterator")
ds_iter_init = TRUE;
/* Iterate over points */
@@ -2745,32 +2715,37 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
HDassert(ss_iter->elmt_left > 0);
/* Get SS coords */
- if(H5S_SELECT_ITER_COORDS(ss_iter, coords) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get source selection coordinates")
+ if (H5S_SELECT_ITER_COORDS(ss_iter, coords) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL,
+ "can't get source selection coordinates")
/* Check for intersection */
- if((intersect = H5S_SELECT_INTERSECT_BLOCK(src_intersect_space, coords, coords)) < 0)
+ if ((intersect = H5S_SELECT_INTERSECT_BLOCK(src_intersect_space, coords, coords)) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOMPARE, FAIL, "can't check for intersection")
/* Add point if it intersects */
- if(intersect) {
+ if (intersect) {
/* Get DS coords */
- if(H5S_SELECT_ITER_COORDS(ds_iter, coords) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "can't get destination selection coordinates")
+ if (H5S_SELECT_ITER_COORDS(ds_iter, coords) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL,
+ "can't get destination selection coordinates")
/* Add point to new_space */
- if(H5S_select_elements(new_space, H5S_SELECT_APPEND, 1, coords) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSELECT, FAIL, "can't add point to new selection")
+ if (H5S_select_elements(new_space, H5S_SELECT_APPEND, 1, coords) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSELECT, FAIL,
+ "can't add point to new selection")
} /* end if */
/* Advance iterators */
- if(H5S_SELECT_ITER_NEXT(ss_iter, 1) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL, "can't advacne source selection iterator")
+ if (H5S_SELECT_ITER_NEXT(ss_iter, 1) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL,
+ "can't advacne source selection iterator")
ss_iter->elmt_left--;
- if(H5S_SELECT_ITER_NEXT(ds_iter, 1) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL, "can't advacne destination selection iterator")
+ if (H5S_SELECT_ITER_NEXT(ds_iter, 1) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTNEXT, FAIL,
+ "can't advacne destination selection iterator")
ds_iter->elmt_left--;
- } while(ss_iter->elmt_left > 0);
+ } while (ss_iter->elmt_left > 0);
HDassert(H5S_SELECT_ITER_NELMTS(ds_iter) == 0);
} /* end if */
else {
@@ -2780,27 +2755,29 @@ H5S_select_project_intersection(const H5S_t *src_space, const H5S_t *dst_space,
/* Source and destination selections are all or hyperslab,
* intersecting selection is hyperslab. Call the hyperslab routine
* to project to another hyperslab selection. */
- if(H5S__hyper_project_intersection(src_space, dst_space, src_intersect_space, new_space, share_selection) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCLIP, FAIL, "can't project hyperslab onto destination selection")
+ if (H5S__hyper_project_intersection(src_space, dst_space, src_intersect_space, new_space,
+ share_selection) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCLIP, FAIL,
+ "can't project hyperslab onto destination selection")
} /* end else */
- } /* end else */
- } /* end else */
+ } /* end else */
+ } /* end else */
/* load the address of the new space into *new_space_ptr */
*new_space_ptr = new_space;
done:
/* Cleanup on error */
- if(ret_value < 0)
- if(new_space && H5S_close(new_space) < 0)
+ if (ret_value < 0)
+ if (new_space && H5S_close(new_space) < 0)
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release dataspace")
/* General cleanup */
- if(tmp_src_intersect_space && H5S_close(tmp_src_intersect_space) < 0)
+ if (tmp_src_intersect_space && H5S_close(tmp_src_intersect_space) < 0)
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release temporary dataspace")
- if(ss_iter_init && H5S_SELECT_ITER_RELEASE(ss_iter) < 0)
+ if (ss_iter_init && H5S_SELECT_ITER_RELEASE(ss_iter) < 0)
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release source selection iterator")
- if(ds_iter_init && H5S_SELECT_ITER_RELEASE(ds_iter) < 0)
+ if (ds_iter_init && H5S_SELECT_ITER_RELEASE(ds_iter) < 0)
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release destination selection iterator")
ss_iter = H5FL_FREE(H5S_sel_iter_t, ss_iter);
@@ -2809,7 +2786,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_project_intersection() */
-
/*--------------------------------------------------------------------------
NAME
H5Sselect_project_intersection
@@ -2821,9 +2797,10 @@ done:
USAGE
hid_t H5Sselect_project_intersection(src_space_id,dst_space_d,src_intersect_space_id)
- hid_t src_space_id; IN: Selection that is mapped to dst_space_id, and intersected with src_intersect_space_id
- hid_t dst_space_id; IN: Selection that is mapped to src_space_id
- hid_t src_intersect_space_id; IN: Selection whose intersection with src_space_id is projected to dst_space_id to obtain the result
+ hid_t src_space_id; IN: Selection that is mapped to dst_space_id, and intersected with
+src_intersect_space_id hid_t dst_space_id; IN: Selection that is mapped to src_space_id hid_t
+src_intersect_space_id; IN: Selection whose intersection with src_space_id is projected to dst_space_id to
+obtain the result
RETURNS
A dataspace with a selection equal to the intersection of
@@ -2842,51 +2819,50 @@ done:
REVISION LOG
--------------------------------------------------------------------------*/
hid_t
-H5Sselect_project_intersection(hid_t src_space_id, hid_t dst_space_id,
- hid_t src_intersect_space_id)
+H5Sselect_project_intersection(hid_t src_space_id, hid_t dst_space_id, hid_t src_intersect_space_id)
{
H5S_t *src_space, *dst_space, *src_intersect_space; /* Input dataspaces */
- H5S_t *proj_space = NULL; /* Output dataspace */
- hid_t ret_value; /* Return value */
+ H5S_t *proj_space = NULL; /* Output dataspace */
+ hid_t ret_value; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE3("i", "iii", src_space_id, dst_space_id, src_intersect_space_id);
/* Check args */
- if(NULL == (src_space = (H5S_t *)H5I_object_verify(src_space_id, H5I_DATASPACE)))
+ if (NULL == (src_space = (H5S_t *)H5I_object_verify(src_space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace")
- if(NULL == (dst_space = (H5S_t *)H5I_object_verify(dst_space_id, H5I_DATASPACE)))
+ if (NULL == (dst_space = (H5S_t *)H5I_object_verify(dst_space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace")
- if(NULL == (src_intersect_space = (H5S_t *)H5I_object_verify(src_intersect_space_id, H5I_DATASPACE)))
+ if (NULL == (src_intersect_space = (H5S_t *)H5I_object_verify(src_intersect_space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace")
/* Check numbers of points selected matches in source and destination */
- if(H5S_GET_SELECT_NPOINTS(src_space) != H5S_GET_SELECT_NPOINTS(dst_space))
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "number of points selected in source space does not match that in destination space")
+ if (H5S_GET_SELECT_NPOINTS(src_space) != H5S_GET_SELECT_NPOINTS(dst_space))
+ HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL,
+ "number of points selected in source space does not match that in destination space")
/* Check numbers of dimensions matches in source and source intersect spaces
*/
- if(H5S_GET_EXTENT_NDIMS(src_space) != H5S_GET_EXTENT_NDIMS(src_intersect_space))
- HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "rank of source space does not match rank of source intersect space")
+ if (H5S_GET_EXTENT_NDIMS(src_space) != H5S_GET_EXTENT_NDIMS(src_intersect_space))
+ HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL,
+ "rank of source space does not match rank of source intersect space")
/* Perform operation */
- if(H5S_select_project_intersection(src_space, dst_space,
- src_intersect_space, &proj_space, FALSE) < 0)
+ if (H5S_select_project_intersection(src_space, dst_space, src_intersect_space, &proj_space, FALSE) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTCLIP, FAIL, "can't project dataspace intersection")
/* Atomize */
- if((ret_value = H5I_register(H5I_DATASPACE, proj_space, TRUE)) < 0)
+ if ((ret_value = H5I_register(H5I_DATASPACE, proj_space, TRUE)) < 0)
HGOTO_ERROR(H5E_ATOM, H5E_CANTREGISTER, FAIL, "unable to register dataspace atom")
done:
- if(ret_value < 0)
- if(proj_space && H5S_close(proj_space) < 0)
+ if (ret_value < 0)
+ if (proj_space && H5S_close(proj_space) < 0)
HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release dataspace")
FUNC_LEAVE_API(ret_value)
} /* end H5Sselect_project_intersection() */
-
/*--------------------------------------------------------------------------
NAME
H5S_select_subtract
@@ -2915,7 +2891,7 @@ done:
herr_t
H5S_select_subtract(H5S_t *space, H5S_t *subtract_space)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
@@ -2925,40 +2901,40 @@ H5S_select_subtract(H5S_t *space, H5S_t *subtract_space)
/* If either space is using the none selection, then we do not need to do
* anything */
- if((space->select.type->type != H5S_SEL_NONE)
- && (subtract_space->select.type->type != H5S_SEL_NONE)) {
+ if ((space->select.type->type != H5S_SEL_NONE) && (subtract_space->select.type->type != H5S_SEL_NONE)) {
/* If subtract_space is using the all selection, set space to none */
- if(subtract_space->select.type->type == H5S_SEL_ALL) {
+ if (subtract_space->select.type->type == H5S_SEL_ALL) {
/* Change to "none" selection */
- if(H5S_select_none(space) < 0)
+ if (H5S_select_none(space) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection")
} /* end if */
/* If either selection is a point selection, fail currently */
- else if((subtract_space->select.type->type == H5S_SEL_POINTS) ||
- (space->select.type->type == H5S_SEL_POINTS)) {
+ else if ((subtract_space->select.type->type == H5S_SEL_POINTS) ||
+ (space->select.type->type == H5S_SEL_POINTS)) {
HGOTO_ERROR(H5E_DATASPACE, H5E_UNSUPPORTED, FAIL, "point selections not currently supported")
} /* end if */
else {
/* Check for all selection in space, convert to hyperslab */
- if(space->select.type->type == H5S_SEL_ALL) {
+ if (space->select.type->type == H5S_SEL_ALL) {
/* Convert current "all" selection to "real" hyperslab selection */
/* Then allow operation to proceed */
- hsize_t tmp_start[H5S_MAX_RANK]; /* Temporary start information */
- hsize_t tmp_stride[H5S_MAX_RANK]; /* Temporary stride information */
- hsize_t tmp_count[H5S_MAX_RANK]; /* Temporary count information */
- hsize_t tmp_block[H5S_MAX_RANK]; /* Temporary block information */
- unsigned u; /* Local index variable */
+ hsize_t tmp_start[H5S_MAX_RANK]; /* Temporary start information */
+ hsize_t tmp_stride[H5S_MAX_RANK]; /* Temporary stride information */
+ hsize_t tmp_count[H5S_MAX_RANK]; /* Temporary count information */
+ hsize_t tmp_block[H5S_MAX_RANK]; /* Temporary block information */
+ unsigned u; /* Local index variable */
/* Fill in temporary information for the dimensions */
- for(u = 0; u < space->extent.rank; u++) {
- tmp_start[u] = 0;
+ for (u = 0; u < space->extent.rank; u++) {
+ tmp_start[u] = 0;
tmp_stride[u] = 1;
- tmp_count[u] = 1;
- tmp_block[u] = space->extent.size[u];
+ tmp_count[u] = 1;
+ tmp_block[u] = space->extent.size[u];
} /* end for */
/* Convert to hyperslab selection */
- if(H5S_select_hyperslab(space, H5S_SELECT_SET, tmp_start, tmp_stride, tmp_count, tmp_block) < 0)
+ if (H5S_select_hyperslab(space, H5S_SELECT_SET, tmp_start, tmp_stride, tmp_count, tmp_block) <
+ 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTSELECT, FAIL, "can't convert selection")
} /* end if */
@@ -2966,16 +2942,15 @@ H5S_select_subtract(H5S_t *space, H5S_t *subtract_space)
HDassert(subtract_space->select.type->type == H5S_SEL_HYPERSLABS);
/* Both spaces are now hyperslabs, perform the operation */
- if(H5S__modify_select(space, H5S_SELECT_NOTB, subtract_space) < 0)
+ if (H5S__modify_select(space, H5S_SELECT_NOTB, subtract_space) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCLIP, FAIL, "can't subtract hyperslab")
} /* end else */
- } /* end if */
+ } /* end if */
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_select_subtract() */
-
/*--------------------------------------------------------------------------
NAME
H5Ssel_iter_create
@@ -2999,41 +2974,41 @@ done:
hid_t
H5Ssel_iter_create(hid_t space_id, size_t elmt_size, unsigned flags)
{
- H5S_t *space; /* Dataspace with selection to iterate over */
- H5S_sel_iter_t *sel_iter; /* Selection iterator created */
- hid_t ret_value; /* Return value */
+ H5S_t * space; /* Dataspace with selection to iterate over */
+ H5S_sel_iter_t *sel_iter; /* Selection iterator created */
+ hid_t ret_value; /* Return value */
FUNC_ENTER_API(H5I_INVALID_HID)
H5TRACE3("i", "izIu", space_id, elmt_size, flags);
/* Check args */
- if(NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
+ if (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, H5I_INVALID_HID, "not a dataspace")
- if(elmt_size == 0)
+ if (elmt_size == 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, H5I_INVALID_HID, "element size must be greater than 0")
- if(flags != (flags & H5S_SEL_ITER_ALL_PUBLIC_FLAGS))
+ if (flags != (flags & H5S_SEL_ITER_ALL_PUBLIC_FLAGS))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, H5I_INVALID_HID, "invalid selection iterator flag")
/* Allocate the iterator */
- if(NULL == (sel_iter = H5FL_MALLOC(H5S_sel_iter_t)))
+ if (NULL == (sel_iter = H5FL_MALLOC(H5S_sel_iter_t)))
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTALLOC, H5I_INVALID_HID, "can't allocate selection iterator")
/* Add flag to indicate that this iterator is from an API call */
flags |= H5S_SEL_ITER_API_CALL;
/* Initialize the selection iterator */
- if(H5S_select_iter_init(sel_iter, space, elmt_size, flags) < 0)
+ if (H5S_select_iter_init(sel_iter, space, elmt_size, flags) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, H5I_INVALID_HID, "unable to initialize selection iterator")
/* Atomize */
- if((ret_value = H5I_register(H5I_SPACE_SEL_ITER, sel_iter, TRUE)) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTREGISTER, H5I_INVALID_HID, "unable to register dataspace selection iterator atom")
+ if ((ret_value = H5I_register(H5I_SPACE_SEL_ITER, sel_iter, TRUE)) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTREGISTER, H5I_INVALID_HID,
+ "unable to register dataspace selection iterator atom")
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Ssel_iter_create() */
-
/*--------------------------------------------------------------------------
NAME
H5Ssel_iter_get_seq_list
@@ -3081,31 +3056,30 @@ done:
REVISION LOG
--------------------------------------------------------------------------*/
herr_t
-H5Ssel_iter_get_seq_list(hid_t sel_iter_id, size_t maxseq, size_t maxbytes,
- size_t *nseq, size_t *nbytes, hsize_t *off, size_t *len)
+H5Ssel_iter_get_seq_list(hid_t sel_iter_id, size_t maxseq, size_t maxbytes, size_t *nseq, size_t *nbytes,
+ hsize_t *off, size_t *len)
{
- H5S_sel_iter_t *sel_iter; /* Dataspace selection iterator to operate on */
- herr_t ret_value = SUCCEED; /* Return value */
+ H5S_sel_iter_t *sel_iter; /* Dataspace selection iterator to operate on */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
- H5TRACE7("e", "izz*z*z*h*z", sel_iter_id, maxseq, maxbytes, nseq, nbytes, off,
- len);
+ H5TRACE7("e", "izz*z*z*h*z", sel_iter_id, maxseq, maxbytes, nseq, nbytes, off, len);
/* Check args */
- if(NULL == (sel_iter = (H5S_sel_iter_t *)H5I_object_verify(sel_iter_id, H5I_SPACE_SEL_ITER)))
+ if (NULL == (sel_iter = (H5S_sel_iter_t *)H5I_object_verify(sel_iter_id, H5I_SPACE_SEL_ITER)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace selection iterator")
- if(NULL == nseq)
+ if (NULL == nseq)
HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "'nseq' pointer is NULL")
- if(NULL == nbytes)
+ if (NULL == nbytes)
HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "'nbytes' pointer is NULL")
- if(NULL == off)
+ if (NULL == off)
HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "offset array pointer is NULL")
- if(NULL == len)
+ if (NULL == len)
HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "length array pointer is NULL")
/* Get the sequences of bytes */
- if(maxseq > 0 && maxbytes > 0 && sel_iter->elmt_left > 0) {
- if(H5S_SELECT_ITER_GET_SEQ_LIST(sel_iter, maxseq, maxbytes, nseq, nbytes, off, len) < 0)
+ if (maxseq > 0 && maxbytes > 0 && sel_iter->elmt_left > 0) {
+ if (H5S_SELECT_ITER_GET_SEQ_LIST(sel_iter, maxseq, maxbytes, nseq, nbytes, off, len) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTGET, FAIL, "sequence length generation failed")
} /* end if */
else
@@ -3115,7 +3089,6 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Ssel_iter_get_seq_list() */
-
/*--------------------------------------------------------------------------
NAME
H5Ssel_iter_reset
@@ -3141,31 +3114,31 @@ herr_t
H5Ssel_iter_reset(hid_t sel_iter_id, hid_t space_id)
{
H5S_sel_iter_t *sel_iter;
- H5S_t *space;
- herr_t ret_value = SUCCEED;
+ H5S_t * space;
+ herr_t ret_value = SUCCEED;
FUNC_ENTER_API(FAIL)
H5TRACE2("e", "ii", sel_iter_id, space_id);
/* Check args */
- if(NULL == (sel_iter = (H5S_sel_iter_t *)H5I_object_verify(sel_iter_id, H5I_SPACE_SEL_ITER)))
+ if (NULL == (sel_iter = (H5S_sel_iter_t *)H5I_object_verify(sel_iter_id, H5I_SPACE_SEL_ITER)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace selection iterator")
- if(NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
+ if (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE)))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace")
/* Call selection type-specific release routine */
- if(H5S_SELECT_ITER_RELEASE(sel_iter) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "problem releasing a selection iterator's type-specific info")
+ if (H5S_SELECT_ITER_RELEASE(sel_iter) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL,
+ "problem releasing a selection iterator's type-specific info")
/* Simply re-initialize iterator */
- if(H5S_select_iter_init(sel_iter, space, sel_iter->elmt_size, sel_iter->flags) < 0)
+ if (H5S_select_iter_init(sel_iter, space, sel_iter->elmt_size, sel_iter->flags) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTINIT, FAIL, "unable to re-initialize selection iterator")
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Ssel_iter_reset() */
-
/*-------------------------------------------------------------------------
* Function: H5S_sel_iter_close
*
@@ -3181,7 +3154,7 @@ done:
herr_t
H5S_sel_iter_close(H5S_sel_iter_t *sel_iter)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
@@ -3189,8 +3162,9 @@ H5S_sel_iter_close(H5S_sel_iter_t *sel_iter)
HDassert(sel_iter);
/* Call selection type-specific release routine */
- if(H5S_SELECT_ITER_RELEASE(sel_iter) < 0)
- HGOTO_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "problem releasing a selection iterator's type-specific info")
+ if (H5S_SELECT_ITER_RELEASE(sel_iter) < 0)
+ HGOTO_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL,
+ "problem releasing a selection iterator's type-specific info")
/* Release the structure */
sel_iter = H5FL_FREE(H5S_sel_iter_t, sel_iter);
@@ -3199,7 +3173,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5S_sel_iter_close() */
-
/*--------------------------------------------------------------------------
NAME
H5Ssel_iter_close
@@ -3222,20 +3195,19 @@ done:
herr_t
H5Ssel_iter_close(hid_t sel_iter_id)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
H5TRACE1("e", "i", sel_iter_id);
/* Check args */
- if(NULL == H5I_object_verify(sel_iter_id, H5I_SPACE_SEL_ITER))
+ if (NULL == H5I_object_verify(sel_iter_id, H5I_SPACE_SEL_ITER))
HGOTO_ERROR(H5E_DATASPACE, H5E_BADTYPE, FAIL, "not a dataspace selection iterator")
/* When the reference count reaches zero the resources are freed */
- if(H5I_dec_app_ref(sel_iter_id) < 0)
+ if (H5I_dec_app_ref(sel_iter_id) < 0)
HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDEC, FAIL, "problem freeing dataspace selection iterator ID")
done:
FUNC_LEAVE_API(ret_value)
} /* end H5Ssel_iter_close() */
-