summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-10-27 17:07:54 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-10-27 17:07:54 (GMT)
commit603fa2e6c92cf1aafc2bb51daa1b89a1f66825ed (patch)
treeded5b2e10e240dc86f5c227443041343d1ef4f28 /src
parentb3e569c4bc31fbe0aa880da8935769fbff615425 (diff)
downloadhdf5-603fa2e6c92cf1aafc2bb51daa1b89a1f66825ed.zip
hdf5-603fa2e6c92cf1aafc2bb51daa1b89a1f66825ed.tar.gz
hdf5-603fa2e6c92cf1aafc2bb51daa1b89a1f66825ed.tar.bz2
[svn-r9470] Purpose:
Code cleanup Description: Clear up some inconsistencies, inefficiencies and possible errors between the release and development branch. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Linux 2.4 (heping) w/C++ & FORTRAN
Diffstat (limited to 'src')
-rw-r--r--src/H5Odtype.c68
-rw-r--r--src/H5T.c86
-rw-r--r--src/H5Tarray.c13
-rw-r--r--src/H5Tcommit.c13
-rw-r--r--src/H5Tcompound.c10
-rw-r--r--src/H5Tenum.c142
-rw-r--r--src/H5Tfields.c2
-rw-r--r--src/H5Tfixed.c8
-rw-r--r--src/H5Tnative.c2
-rw-r--r--src/H5Toffset.c2
-rw-r--r--src/H5Torder.c4
-rw-r--r--src/H5Tpad.c4
-rw-r--r--src/H5Tpkg.h33
-rw-r--r--src/H5Tprecis.c6
-rw-r--r--src/H5Tpublic.h25
15 files changed, 176 insertions, 242 deletions
diff --git a/src/H5Odtype.c b/src/H5Odtype.c
index 7009670..a62baa8 100644
--- a/src/H5Odtype.c
+++ b/src/H5Odtype.c
@@ -318,10 +318,11 @@ H5O_dtype_decode_helper(H5F_t *f, const uint8_t **pp, H5T_t *dt)
assert(dt->shared->u.enumer.nmembs>=0);
if (NULL==(dt->shared->parent=H5FL_CALLOC(H5T_t)))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed");
- if (NULL==(dt->shared->parent->shared=H5FL_CALLOC(H5T_shared_t)))
- HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed");
+ if(NULL== (dt->shared->parent->shared= H5FL_CALLOC (H5T_shared_t))) {
+ H5FL_FREE(H5T_t, dt->shared->parent);
+ HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed");
+ }
dt->shared->parent->ent.header = HADDR_UNDEF;
- dt->shared->parent->shared->fo_count=1;
if (H5O_dtype_decode_helper(f, pp, dt->shared->parent)<0)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, FAIL, "unable to decode parent data type");
if (NULL==(dt->shared->u.enumer.name=H5MM_calloc(dt->shared->u.enumer.nalloc * sizeof(char*))) ||
@@ -347,6 +348,8 @@ H5O_dtype_decode_helper(H5F_t *f, const uint8_t **pp, H5T_t *dt)
dt->shared->u.atomic.offset = 0;
dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO;
dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO;
+
+ /* Set reference type */
dt->shared->u.atomic.u.r.rtype = (H5R_type_t)(flags & 0x0f);
break;
@@ -375,10 +378,12 @@ H5O_dtype_decode_helper(H5F_t *f, const uint8_t **pp, H5T_t *dt)
/* Decode base type of VL information */
if (NULL==(dt->shared->parent = H5FL_CALLOC(H5T_t)))
HGOTO_ERROR (H5E_DATATYPE, H5E_NOSPACE, FAIL, "memory allocation failed");
- if (NULL==(dt->shared->parent->shared=H5FL_CALLOC(H5T_shared_t)))
- HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed");
+ if (NULL==(dt->shared->parent->shared = H5FL_CALLOC(H5T_shared_t)))
+ {
+ H5FL_FREE(H5T_t, dt->shared->parent);
+ HGOTO_ERROR (H5E_DATATYPE, H5E_NOSPACE, FAIL, "memory allocation failed");
+ }
dt->shared->parent->ent.header = HADDR_UNDEF;
- dt->shared->parent->shared->fo_count=1;
if (H5O_dtype_decode_helper(f, pp, dt->shared->parent)<0)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, FAIL, "unable to decode VL parent type");
@@ -416,10 +421,11 @@ H5O_dtype_decode_helper(H5F_t *f, const uint8_t **pp, H5T_t *dt)
/* Decode base type of array */
if (NULL==(dt->shared->parent = H5FL_CALLOC(H5T_t)))
HGOTO_ERROR (H5E_DATATYPE, H5E_NOSPACE, FAIL, "memory allocation failed");
- if (NULL==(dt->shared->parent->shared=H5FL_CALLOC(H5T_shared_t)))
- HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed");
+ if(NULL== (dt->shared->parent->shared = H5FL_CALLOC (H5T_shared_t))) {
+ H5FL_FREE(H5T_t, dt->shared->parent);
+ HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed");
+ }
dt->shared->parent->ent.header = HADDR_UNDEF;
- dt->shared->parent->shared->fo_count=1;
if (H5O_dtype_decode_helper(f, pp, dt->shared->parent)<0)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, FAIL, "unable to decode VL parent type");
@@ -684,9 +690,9 @@ H5O_dtype_encode_helper(uint8_t **pp, const H5T_t *dt)
*(*pp)++ = 0;
/* Reserved */
- *(*pp)++ = '\0';
- *(*pp)++ = '\0';
- *(*pp)++ = '\0';
+ *(*pp)++ = 0;
+ *(*pp)++ = 0;
+ *(*pp)++ = 0;
/* Dimension permutation */
UINT32ENCODE(*pp, 0);
@@ -802,6 +808,7 @@ H5O_dtype_encode_helper(uint8_t **pp, const H5T_t *dt)
break;
}
+ /* Encode the type's class, version and bit field */
*hdr++ = ((unsigned)(dt->shared->type) & 0x0f) | (((dt->shared->type==H5T_COMPOUND && has_array) ? H5O_DTYPE_VERSION_UPDATED : H5O_DTYPE_VERSION_COMPAT )<<4);
*hdr++ = (flags >> 0) & 0xff;
*hdr++ = (flags >> 8) & 0xff;
@@ -837,7 +844,7 @@ H5O_dtype_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p,
H5T_t *dt = NULL;
void *ret_value; /* Return value */
- FUNC_ENTER_NOAPI(H5O_dtype_decode, NULL);
+ FUNC_ENTER_NOAPI_NOINIT(H5O_dtype_decode);
/* check args */
assert(p);
@@ -847,7 +854,6 @@ H5O_dtype_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p,
if (NULL==(dt->shared=H5FL_CALLOC(H5T_shared_t)))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed");
dt->ent.header = HADDR_UNDEF;
- dt->shared->fo_count=1;
if (H5O_dtype_decode_helper(f, &p, dt) < 0)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, NULL, "can't decode type");
@@ -890,7 +896,7 @@ H5O_dtype_encode(H5F_t UNUSED *f, uint8_t *p, const void *mesg)
const H5T_t *dt = (const H5T_t *) mesg;
herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI(H5O_dtype_encode, FAIL);
+ FUNC_ENTER_NOAPI_NOINIT(H5O_dtype_encode);
/* check args */
assert(f);
@@ -930,7 +936,7 @@ H5O_dtype_copy(const void *_src, void *_dst)
H5T_t *dst = NULL;
void *ret_value; /* Return value */
- FUNC_ENTER_NOAPI(H5O_dtype_copy, NULL);
+ FUNC_ENTER_NOAPI_NOINIT(H5O_dtype_copy);
/* check args */
assert(src);
@@ -980,7 +986,7 @@ H5O_dtype_size(H5F_t *f, const void *mesg)
size_t ret_value = 8;
const H5T_t *dt = (const H5T_t *) mesg;
- FUNC_ENTER_NOAPI(H5O_dtype_size, 0);
+ FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_dtype_size);
assert(mesg);
@@ -1042,7 +1048,6 @@ H5O_dtype_size(H5F_t *f, const void *mesg)
break;
}
-done:
FUNC_LEAVE_NOAPI(ret_value);
}
@@ -1066,15 +1071,13 @@ static herr_t
H5O_dtype_reset(void *_mesg)
{
H5T_t *dt = (H5T_t *) _mesg;
- herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI(H5O_dtype_reset, FAIL);
+ FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_dtype_reset);
if (dt)
H5T_free(dt);
-done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(SUCCEED);
}
@@ -1095,17 +1098,14 @@ done:
static herr_t
H5O_dtype_free (void *mesg)
{
- herr_t ret_value=SUCCEED; /* Return value */
-
- FUNC_ENTER_NOAPI(H5O_dtype_free, FAIL);
+ FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_dtype_free);
assert (mesg);
H5FL_FREE(H5T_shared_t, ((H5T_t *) mesg)->shared);
H5FL_FREE(H5T_t,mesg);
-done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(SUCCEED);
}
@@ -1131,7 +1131,7 @@ H5O_dtype_get_share(H5F_t UNUSED *f, const void *_mesg,
const H5T_t *dt = (const H5T_t *)_mesg;
herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI(H5O_dtype_get_share, FAIL);
+ FUNC_ENTER_NOAPI_NOINIT(H5O_dtype_get_share);
assert (dt);
assert (sh);
@@ -1172,9 +1172,8 @@ H5O_dtype_set_share (H5F_t UNUSED *f, void *_mesg/*in,out*/,
const H5O_shared_t *sh)
{
H5T_t *dt = (H5T_t *)_mesg;
- herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI(H5O_dtype_set_share, FAIL);
+ FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_dtype_set_share);
assert (dt);
assert (sh);
@@ -1190,8 +1189,7 @@ H5O_dtype_set_share (H5F_t UNUSED *f, void *_mesg/*in,out*/,
/* Note that the datatype is a named datatype */
dt->shared->state = H5T_STATE_NAMED;
-done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(SUCCEED);
}
@@ -1223,9 +1221,8 @@ H5O_dtype_debug(H5F_t *f, hid_t dxpl_id, const void *mesg, FILE *stream,
char buf[256];
int i;
size_t k;
- herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI(H5O_dtype_debug, FAIL);
+ FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_dtype_debug);
/* check args */
assert(f);
@@ -1509,6 +1506,5 @@ H5O_dtype_debug(H5F_t *f, hid_t dxpl_id, const void *mesg, FILE *stream,
}
}
-done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(SUCCEED);
}
diff --git a/src/H5T.c b/src/H5T.c
index e7a8392..905d89d 100644
--- a/src/H5T.c
+++ b/src/H5T.c
@@ -29,7 +29,7 @@
#include "H5Dprivate.h" /*datasets (for H5Tcopy) */
#include "H5Eprivate.h" /*error handling */
#include "H5FLprivate.h" /* Free Lists */
-#include "H5FOprivate.h" /* File objects */
+#include "H5FOprivate.h" /* File objects */
#include "H5Gprivate.h" /*groups */
#include "H5Iprivate.h" /*ID functions */
#include "H5MMprivate.h" /*memory management */
@@ -434,9 +434,9 @@ static herr_t H5T_register(H5T_pers_t pers, const char *name, H5T_t *src,
H5FL_FREE(H5T_t, dt); \
HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") \
} \
- dt->shared->fo_count=1; \
}
+
#define H5T_INIT_TYPE(GUTS,GLOBAL,CRT_TMPL,BASE,SIZE_TMPL,SIZE) { \
/* Get new datatype struct */ \
H5_GLUE3(H5T_INIT_TYPE_,CRT_TMPL,_CREATE)(BASE) \
@@ -1831,7 +1831,7 @@ H5Tis_variable_str(hid_t dtype_id)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type");
/* Set return value */
- ret_value=H5T_is_variable_str(dt);
+ ret_value=H5T_IS_VL_STRING(dt->shared);
done:
FUNC_LEAVE_API(ret_value);
@@ -1839,39 +1839,6 @@ done:
/*-------------------------------------------------------------------------
- * Function: H5T_is_variable_str
- *
- * Purpose: Private function of H5Tis_variable_str.
- * Check whether a datatype is a variable-length string
- *
- *
- * Return: TRUE (1) or FALSE (0) on success/Negative on failure
- *
- * Programmer: Raymond Lu
- * November 4, 2002
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-htri_t
-H5T_is_variable_str(H5T_t *dt)
-{
- htri_t ret_value=FALSE; /* Return value */
-
- FUNC_ENTER_NOAPI(H5T_is_variable_str, FAIL);
-
- assert(dt);
-
- if(H5T_VLEN == dt->shared->type && H5T_VLEN_STRING == dt->shared->u.vlen.type)
- ret_value = TRUE;
-
-done:
- FUNC_LEAVE_NOAPI(ret_value);
-}
-
-
-/*-------------------------------------------------------------------------
* Function: H5Tget_size
*
* Purpose: Determines the total size of a datatype in bytes.
@@ -2646,6 +2613,7 @@ H5T_create(H5T_class_t type, size_t size)
if (NULL==(dt->shared = H5FL_CALLOC(H5T_shared_t)))
HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed");
dt->shared->type = type;
+
if(type==H5T_COMPOUND)
dt->shared->u.compnd.packed=TRUE; /* Start out packed */
else if(type==H5T_OPAQUE)
@@ -2688,7 +2656,6 @@ H5T_create(H5T_class_t type, size_t size)
}
dt->ent.header = HADDR_UNDEF;
- dt->shared->fo_count = 1;
dt->shared->size = size;
/* Set return value */
@@ -2807,9 +2774,8 @@ H5T_open (H5G_entry_t *ent, hid_t dxpl_id)
done:
if(ret_value==NULL) {
if(dt) {
- if(shared_fo==NULL) { /* Need to free shared fo */
+ if(shared_fo==NULL) /* Need to free shared fo */
H5FL_FREE(H5T_shared_t, dt->shared);
- }
H5FL_FREE(H5T_t, dt);
}
if(shared_fo)
@@ -2929,7 +2895,6 @@ H5T_copy(const H5T_t *old_dt, H5T_copy_t method)
/* Copy actual information */
new_dt->ent = old_dt->ent;
*(new_dt->shared) = *(old_dt->shared);
- new_dt->shared->fo_count = 1;
/* Copy parent information */
if (new_dt->shared->parent)
@@ -3298,41 +3263,6 @@ done:
/*-------------------------------------------------------------------------
- * Function: H5T_is_atomic
- *
- * Purpose: Determines if a data type is an atomic type.
- *
- * Return: Success: TRUE, FALSE
- *
- * Failure: Negative
- *
- * Programmer: Robb Matzke
- * Wednesday, January 7, 1998
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-htri_t
-H5T_is_atomic(const H5T_t *dt)
-{
- htri_t ret_value;
-
- FUNC_ENTER_NOAPI(H5T_is_atomic, FAIL);
-
- assert(dt);
-
- if (!H5T_IS_COMPLEX(dt->shared->type) && H5T_OPAQUE!=dt->shared->type)
- ret_value = TRUE;
- else
- ret_value = FALSE;
-
-done:
- FUNC_LEAVE_NOAPI(ret_value);
-}
-
-
-/*-------------------------------------------------------------------------
* Function: H5T_set_size
*
* Purpose: Sets the total size in bytes for a data type (this operation
@@ -3386,7 +3316,7 @@ H5T_set_size(H5T_t *dt, size_t size)
else if(dt->shared->type!=H5T_VLEN)
dt->shared->size = dt->shared->parent->shared->size;
} else {
- if (H5T_is_atomic(dt)) {
+ if (H5T_IS_ATOMIC(dt->shared)) {
offset = dt->shared->u.atomic.offset;
prec = dt->shared->u.atomic.prec;
@@ -3504,7 +3434,7 @@ H5T_set_size(H5T_t *dt, size_t size)
/* Commit (if we didn't convert this type to a VL string) */
if(dt->shared->type!=H5T_VLEN) {
dt->shared->size = size;
- if (H5T_is_atomic(dt)) {
+ if (H5T_IS_ATOMIC(dt->shared)) {
dt->shared->u.atomic.offset = offset;
dt->shared->u.atomic.prec = prec;
}
@@ -4703,7 +4633,7 @@ H5T_debug(const H5T_t *dt, FILE *stream)
fprintf(stream, "%s%s {nbytes=%lu", s1, s2, (unsigned long)(dt->shared->size));
- if (H5T_is_atomic(dt)) {
+ if (H5T_IS_ATOMIC(dt->shared)) {
switch (dt->shared->u.atomic.order) {
case H5T_ORDER_BE:
s1 = "BE";
diff --git a/src/H5Tarray.c b/src/H5Tarray.c
index 1dc4b8e..a8c8de9 100644
--- a/src/H5Tarray.c
+++ b/src/H5Tarray.c
@@ -21,13 +21,13 @@
/* Pablo information */
/* (Put before include files to avoid problems with inline functions) */
-#define PABLO_MASK H5Tarray_mask
+#define PABLO_MASK H5T_array_mask
-#include "H5private.h" /*generic functions */
-#include "H5Eprivate.h" /*error handling */
-#include "H5FLprivate.h" /*Free Lists */
-#include "H5Iprivate.h" /*ID functions */
-#include "H5Tpkg.h" /*data-type functions */
+#include "H5private.h" /* Generic Functions */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5FLprivate.h" /* Free Lists */
+#include "H5Iprivate.h" /* IDs */
+#include "H5Tpkg.h" /* Datatypes */
/* Interface initialization */
static int interface_initialize_g = 0;
@@ -163,7 +163,6 @@ H5T_array_create(H5T_t *base, int ndims, const hsize_t dim[/* ndims */],
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed");
}
ret_value->ent.header = HADDR_UNDEF;
- ret_value->shared->fo_count=1;
ret_value->shared->type = H5T_ARRAY;
/* Copy the base type of the array */
diff --git a/src/H5Tcommit.c b/src/H5Tcommit.c
index 75e78de..7433384 100644
--- a/src/H5Tcommit.c
+++ b/src/H5Tcommit.c
@@ -21,13 +21,13 @@
/* Pablo information */
/* (Put before include files to avoid problems with inline functions) */
-#define PABLO_MASK H5Tcommit_mask
+#define PABLO_MASK H5T_commit_mask
-#include "H5private.h" /*generic functions */
-#include "H5Eprivate.h" /*error handling */
-#include "H5Iprivate.h" /*ID functions */
-#include "H5FOprivate.h" /* File objects */
-#include "H5Tpkg.h" /*data-type functions */
+#include "H5private.h" /* Generic Functions */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5FOprivate.h" /* File objects */
+#include "H5Iprivate.h" /* IDs */
+#include "H5Tpkg.h" /* Datatypes */
/* Interface initialization */
static int interface_initialize_g = 0;
@@ -184,6 +184,7 @@ done:
type->ent.header = HADDR_UNDEF;
}
}
+
FUNC_LEAVE_NOAPI(ret_value);
}
diff --git a/src/H5Tcompound.c b/src/H5Tcompound.c
index 6b57b3e..ee51989 100644
--- a/src/H5Tcompound.c
+++ b/src/H5Tcompound.c
@@ -128,7 +128,7 @@ done:
*-------------------------------------------------------------------------
*/
size_t
-H5T_get_member_offset(H5T_t *dt, int membno)
+H5T_get_member_offset(const H5T_t *dt, int membno)
{
size_t ret_value;
@@ -258,7 +258,7 @@ done:
*-------------------------------------------------------------------------
*/
H5T_t *
-H5T_get_member_type(H5T_t *dt, int membno)
+H5T_get_member_type(const H5T_t *dt, int membno)
{
H5T_t *ret_value = NULL;
@@ -293,14 +293,14 @@ done:
*-------------------------------------------------------------------------
*/
size_t
-H5T_get_member_size(H5T_t *dt, int membno)
+H5T_get_member_size(H5T_t *dt, unsigned membno)
{
size_t ret_value = 0;
FUNC_ENTER_NOAPI(H5T_get_member_size, 0);
assert(dt);
- assert(membno >=0 && membno < dt->shared->u.compnd.nmembs);
+ assert(membno < dt->shared->u.compnd.nmembs);
/* Value */
ret_value = dt->shared->u.compnd.memb[membno].type->shared->size;
@@ -600,7 +600,7 @@ done:
*-------------------------------------------------------------------------
*/
htri_t
-H5T_is_packed(H5T_t *dt)
+H5T_is_packed(const H5T_t *dt)
{
htri_t ret_value=TRUE; /* Return value */
diff --git a/src/H5Tenum.c b/src/H5Tenum.c
index f1e6e5f..945e728 100644
--- a/src/H5Tenum.c
+++ b/src/H5Tenum.c
@@ -19,26 +19,28 @@
#define H5T_PACKAGE /*suppress error about including H5Tpkg */
+/* Pablo information */
+/* (Put before include files to avoid problems with inline functions) */
+#define PABLO_MASK H5T_enum_mask
+
#include "H5private.h" /*generic functions */
#include "H5Eprivate.h" /*error handling */
-#include "H5FLprivate.h" /*Free Lists */
+#include "H5FLprivate.h" /*Free Lists */
#include "H5Iprivate.h" /*ID functions */
#include "H5MMprivate.h" /*memory management */
#include "H5Tpkg.h" /*data-type functions */
-#define PABLO_MASK H5Tenum_mask
-
/* Interface initialization */
static int interface_initialize_g = 0;
#define INTERFACE_INIT H5T_init_enum_interface
static herr_t H5T_init_enum_interface(void);
-/* Declare extern the free list for H5T_t's */
+/* Declare extern the free lists for H5T_t's and H5T_shared_t's */
H5FL_EXTERN(H5T_t);
H5FL_EXTERN(H5T_shared_t);
/* Static local functions */
-static char *H5T_enum_nameof(H5T_t *dt, void *value, char *name/*out*/,
+static char *H5T_enum_nameof(H5T_t *dt, const void *value, char *name/*out*/,
size_t size);
static herr_t H5T_enum_valueof(H5T_t *dt, const char *name,
void *value/*out*/);
@@ -60,9 +62,9 @@ DESCRIPTION
static herr_t
H5T_init_enum_interface(void)
{
- FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5T_init_enum_interface);
+ FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5T_init_enum_interface)
- FUNC_LEAVE_NOAPI(H5T_init());
+ FUNC_LEAVE_NOAPI(H5T_init())
} /* H5T_init_enum_interface() */
@@ -90,22 +92,22 @@ H5Tenum_create(hid_t parent_id)
H5T_t *dt = NULL; /*new enumeration data type */
hid_t ret_value; /*return value */
- FUNC_ENTER_API(H5Tenum_create, FAIL);
+ FUNC_ENTER_API(H5Tenum_create, FAIL)
H5TRACE1("i","i",parent_id);
/* Check args */
if (NULL==(parent=H5I_object_verify(parent_id,H5I_DATATYPE)) || H5T_INTEGER!=parent->shared->type)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an integer data type");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an integer data type")
/* Build new type */
if((dt=H5T_enum_create(parent))==NULL)
- HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "cannot create enum type");
+ HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "cannot create enum type")
/* Atomize the type */
if ((ret_value=H5I_register(H5I_DATATYPE, dt))<0)
- HGOTO_ERROR(H5E_DATATYPE, H5E_CANTREGISTER, FAIL, "unable to register data type atom");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTREGISTER, FAIL, "unable to register data type atom")
done:
- FUNC_LEAVE_API(ret_value);
+ FUNC_LEAVE_API(ret_value)
}
@@ -128,30 +130,29 @@ done:
*-------------------------------------------------------------------------
*/
H5T_t *
-H5T_enum_create(H5T_t *parent)
+H5T_enum_create(const H5T_t *parent)
{
H5T_t *ret_value; /*new enumeration data type */
- FUNC_ENTER_NOAPI(H5T_enum_create, NULL);
+ FUNC_ENTER_NOAPI(H5T_enum_create, NULL)
assert(parent);
/* Build new type */
if (NULL==(ret_value = H5FL_CALLOC(H5T_t)))
- HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed");
+ HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
if (NULL==(ret_value->shared=H5FL_CALLOC(H5T_shared_t))) {
H5FL_FREE(H5T_t, ret_value);
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed");
}
ret_value->shared->type = H5T_ENUM;
- ret_value->shared->fo_count=1;
ret_value->shared->parent = H5T_copy(parent, H5T_COPY_ALL);
assert(ret_value->shared->parent);
ret_value->shared->size = ret_value->shared->parent->shared->size;
ret_value->ent.header = HADDR_UNDEF;
done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(ret_value)
}
@@ -177,30 +178,30 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5Tenum_insert(hid_t type, const char *name, void *value)
+H5Tenum_insert(hid_t type, const char *name, const void *value)
{
H5T_t *dt=NULL;
herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_API(H5Tenum_insert, FAIL);
+ FUNC_ENTER_API(H5Tenum_insert, FAIL)
H5TRACE3("e","isx",type,name,value);
/* Check args */
if (NULL==(dt=H5I_object_verify(type,H5I_DATATYPE)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type")
if (H5T_ENUM!=dt->shared->type)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an enumeration data type");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an enumeration data type")
if (!name || !*name)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
if (!value)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no value specified");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no value specified")
/* Do work */
if (H5T_enum_insert(dt, name, value)<0)
- HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to insert new enumeration member");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to insert new enumeration member")
done:
- FUNC_LEAVE_API(ret_value);
+ FUNC_LEAVE_API(ret_value)
}
@@ -224,14 +225,14 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5T_enum_insert(H5T_t *dt, const char *name, void *value)
+H5T_enum_insert(H5T_t *dt, const char *name, const void *value)
{
int i;
char **names=NULL;
uint8_t *values=NULL;
herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI(H5T_enum_insert, FAIL);
+ FUNC_ENTER_NOAPI(H5T_enum_insert, FAIL)
assert(dt);
assert(name && *name);
@@ -240,20 +241,20 @@ H5T_enum_insert(H5T_t *dt, const char *name, void *value)
/* The name and value had better not already exist */
for (i=0; i<dt->shared->u.enumer.nmembs; i++) {
if (!HDstrcmp(dt->shared->u.enumer.name[i], name))
- HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "name redefinition");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "name redefinition")
if (!HDmemcmp(dt->shared->u.enumer.value+i*dt->shared->size, value, dt->shared->size))
- HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "value redefinition");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "value redefinition")
}
/* Increase table sizes */
if (dt->shared->u.enumer.nmembs >= dt->shared->u.enumer.nalloc) {
int n = MAX(32, 2*dt->shared->u.enumer.nalloc);
if (NULL==(names=H5MM_realloc(dt->shared->u.enumer.name, n*sizeof(char*))))
- HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed");
+ HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
dt->shared->u.enumer.name = names;
if (NULL==(values=H5MM_realloc(dt->shared->u.enumer.value, n*dt->shared->size)))
- HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed");
+ HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
dt->shared->u.enumer.value = values;
dt->shared->u.enumer.nalloc = n;
}
@@ -265,7 +266,7 @@ H5T_enum_insert(H5T_t *dt, const char *name, void *value)
HDmemcpy(dt->shared->u.enumer.value+i*dt->shared->size, value, dt->shared->size);
done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(ret_value)
}
@@ -292,22 +293,22 @@ H5Tget_member_value(hid_t type, int membno, void *value/*out*/)
H5T_t *dt=NULL;
herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_API(H5Tget_member_value, FAIL);
+ FUNC_ENTER_API(H5Tget_member_value, FAIL)
H5TRACE3("e","iIsx",type,membno,value);
if (NULL==(dt=H5I_object_verify(type,H5I_DATATYPE)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type")
if (H5T_ENUM!=dt->shared->type)
- HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "operation not defined for data type class");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "operation not defined for data type class")
if (membno<0 || membno>=dt->shared->u.enumer.nmembs)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid member number");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid member number")
if (!value)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "null value buffer");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "null value buffer")
if (H5T_get_member_value(dt, membno, value)<0)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "unable to get member value");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "unable to get member value")
done:
- FUNC_LEAVE_API(ret_value);
+ FUNC_LEAVE_API(ret_value)
}
@@ -330,11 +331,11 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5T_get_member_value(H5T_t *dt, int membno, void *value/*out*/)
+H5T_get_member_value(const H5T_t *dt, int membno, void *value/*out*/)
{
herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI(H5T_get_member_value, FAIL);
+ FUNC_ENTER_NOAPI(H5T_get_member_value, FAIL)
assert(dt);
assert(value);
@@ -342,7 +343,7 @@ H5T_get_member_value(H5T_t *dt, int membno, void *value/*out*/)
HDmemcpy(value, dt->shared->u.enumer.value + membno*dt->shared->size, dt->shared->size);
done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(ret_value)
}
@@ -370,29 +371,29 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5Tenum_nameof(hid_t type, void *value, char *name/*out*/, size_t size)
+H5Tenum_nameof(hid_t type, const void *value, char *name/*out*/, size_t size)
{
H5T_t *dt = NULL;
herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_API(H5Tenum_nameof, FAIL);
+ FUNC_ENTER_API(H5Tenum_nameof, FAIL)
H5TRACE4("e","ixxz",type,value,name,size);
/* Check args */
if (NULL==(dt=H5I_object_verify(type,H5I_DATATYPE)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type")
if (H5T_ENUM!=dt->shared->type)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an enumeration data type");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an enumeration data type")
if (!value)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no value supplied");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no value supplied")
if (!name)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name buffer supplied");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name buffer supplied")
if (NULL==H5T_enum_nameof(dt, value, name, size))
- HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "nameof query failed");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "nameof query failed")
done:
- FUNC_LEAVE_API(ret_value);
+ FUNC_LEAVE_API(ret_value)
}
@@ -422,13 +423,13 @@ done:
*-------------------------------------------------------------------------
*/
static char *
-H5T_enum_nameof(H5T_t *dt, void *value, char *name/*out*/, size_t size)
+H5T_enum_nameof(H5T_t *dt, const void *value, char *name/*out*/, size_t size)
{
int lt, md, rt; /*indices for binary search */
int cmp=(-1); /*comparison result */
char *ret_value; /* Return value */
- FUNC_ENTER_NOAPI(H5T_enum_nameof, NULL);
+ FUNC_ENTER_NOAPI(H5T_enum_nameof, NULL)
/* Check args */
assert(dt && H5T_ENUM==dt->shared->type);
@@ -438,10 +439,11 @@ H5T_enum_nameof(H5T_t *dt, void *value, char *name/*out*/, size_t size)
/* Sanity check */
if (dt->shared->u.enumer.nmembs == 0)
- HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, NULL, "datatype has no members");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, NULL, "datatype has no members")
/* Do a binary search over the values to find the correct one */
- H5T_sort_value(dt, NULL);
+ if(H5T_sort_value(dt, NULL)<0)
+ HGOTO_ERROR(H5E_INTERNAL, H5E_CANTCOMPARE, NULL, "value sort failed")
lt = 0;
rt = dt->shared->u.enumer.nmembs;
md = -1;
@@ -459,20 +461,20 @@ H5T_enum_nameof(H5T_t *dt, void *value, char *name/*out*/, size_t size)
}
/* Value was not yet defined. This fixes bug # 774, 2002/06/05 EIP */
if (cmp!=0)
- HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, NULL, "value is currently not defined");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, NULL, "value is currently not defined")
/* Save result name */
if (!name && NULL==(name=H5MM_malloc(HDstrlen(dt->shared->u.enumer.name[md])+1)))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed");
HDstrncpy(name, dt->shared->u.enumer.name[md], size);
if (HDstrlen(dt->shared->u.enumer.name[md])>=size)
- HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, NULL, "name has been truncated");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, NULL, "name has been truncated")
/* Set return value */
ret_value=name;
done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(ret_value)
}
@@ -501,24 +503,24 @@ H5Tenum_valueof(hid_t type, const char *name, void *value/*out*/)
H5T_t *dt = NULL;
herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_API(H5Tenum_valueof, FAIL);
+ FUNC_ENTER_API(H5Tenum_valueof, FAIL)
H5TRACE3("e","isx",type,name,value);
/* Check args */
if (NULL==(dt=H5I_object_verify(type,H5I_DATATYPE)))
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a data type")
if (H5T_ENUM!=dt->shared->type)
- HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an enumeration data type");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not an enumeration data type")
if (!name || !*name)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name")
if (!value)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no value buffer");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no value buffer")
if (H5T_enum_valueof(dt, name, value)<0)
- HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "valueof query failed");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "valueof query failed")
done:
- FUNC_LEAVE_API(ret_value);
+ FUNC_LEAVE_API(ret_value)
}
@@ -548,7 +550,7 @@ H5T_enum_valueof(H5T_t *dt, const char *name, void *value/*out*/)
int cmp=(-1); /*comparison result */
herr_t ret_value=SUCCEED; /* Return value */
- FUNC_ENTER_NOAPI(H5T_enum_valueof, FAIL);
+ FUNC_ENTER_NOAPI(H5T_enum_valueof, FAIL)
/* Check args */
assert(dt && H5T_ENUM==dt->shared->type);
@@ -557,10 +559,11 @@ H5T_enum_valueof(H5T_t *dt, const char *name, void *value/*out*/)
/* Sanity check */
if (dt->shared->u.enumer.nmembs == 0)
- HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, FAIL, "datatype has no members");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, FAIL, "datatype has no members")
/* Do a binary search over the names to find the correct one */
- H5T_sort_name(dt, NULL);
+ if(H5T_sort_name(dt, NULL)<0)
+ HGOTO_ERROR(H5E_INTERNAL, H5E_CANTCOMPARE, FAIL, "value sort failed")
lt = 0;
rt = dt->shared->u.enumer.nmembs;
md = -1;
@@ -578,11 +581,10 @@ H5T_enum_valueof(H5T_t *dt, const char *name, void *value/*out*/)
}
/* Value was not yet defined. This fixes bug # 774, 2002/06/05 EIP */
if (cmp!=0)
- HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, FAIL, "string doesn't exist in the enumeration type");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_NOTFOUND, FAIL, "string doesn't exist in the enumeration type")
HDmemcpy(value, dt->shared->u.enumer.value+md*dt->shared->size, dt->shared->size);
done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(ret_value)
}
-
diff --git a/src/H5Tfields.c b/src/H5Tfields.c
index 50539f9..674a16b 100644
--- a/src/H5Tfields.c
+++ b/src/H5Tfields.c
@@ -198,7 +198,7 @@ done:
*-------------------------------------------------------------------------
*/
char *
-H5T_get_member_name(H5T_t *dt, int membno)
+H5T_get_member_name(H5T_t const *dt, int membno)
{
char *ret_value;
diff --git a/src/H5Tfixed.c b/src/H5Tfixed.c
index 6baf253..041c58f 100644
--- a/src/H5Tfixed.c
+++ b/src/H5Tfixed.c
@@ -109,11 +109,11 @@ done:
*-------------------------------------------------------------------------
*/
H5T_sign_t
-H5T_get_sign(H5T_t *dt)
+H5T_get_sign(H5T_t const *dt)
{
H5T_sign_t ret_value;
- FUNC_ENTER_NOAPI(H5T_get_sign, H5T_SGN_ERROR);
+ FUNC_ENTER_NOAPI(H5T_get_sign, H5T_SGN_ERROR)
assert(dt);
@@ -123,13 +123,13 @@ H5T_get_sign(H5T_t *dt)
/* Check args */
if (H5T_INTEGER!=dt->shared->type)
- HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, H5T_SGN_ERROR, "operation not defined for data type class");
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, H5T_SGN_ERROR, "operation not defined for data type class")
/* Sign */
ret_value = dt->shared->u.atomic.u.i.sign;
done:
- FUNC_LEAVE_NOAPI(ret_value);
+ FUNC_LEAVE_NOAPI(ret_value)
}
diff --git a/src/H5Tnative.c b/src/H5Tnative.c
index add84bf..992a2ab 100644
--- a/src/H5Tnative.c
+++ b/src/H5Tnative.c
@@ -201,7 +201,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig
if((ret_value=H5T_copy(dtype, H5T_COPY_TRANSIENT))==NULL)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot retrieve float type");
- if(H5T_is_variable_str(dtype)) {
+ if(H5T_IS_VL_STRING(dtype->shared)) {
/* Update size, offset and compound alignment for parent. */
if(H5T_cmp_offset(comp_size, offset, sizeof(char *), 1, H5T_POINTER_COMP_ALIGN_g, struct_align)<0)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot compute compound offset");
diff --git a/src/H5Toffset.c b/src/H5Toffset.c
index f8c9fdb..a3965ad 100644
--- a/src/H5Toffset.c
+++ b/src/H5Toffset.c
@@ -109,7 +109,7 @@ H5Tget_offset(hid_t type_id)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "operation not defined for specified data type");
/* Offset */
- assert(H5T_is_atomic(dt));
+ assert(H5T_IS_ATOMIC(dt->shared));
ret_value = (int)dt->shared->u.atomic.offset;
done:
diff --git a/src/H5Torder.c b/src/H5Torder.c
index 004f513..4bd1c9c 100644
--- a/src/H5Torder.c
+++ b/src/H5Torder.c
@@ -90,7 +90,7 @@ H5Tget_order(hid_t type_id)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, H5T_ORDER_ERROR, "operation not defined for specified data type");
/* Order */
- assert(H5T_is_atomic(dt));
+ assert(H5T_IS_ATOMIC(dt->shared));
ret_value = dt->shared->u.atomic.order;
done:
@@ -138,7 +138,7 @@ H5Tset_order(hid_t type_id, H5T_order_t order)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, H5T_ORDER_ERROR, "operation not defined for specified data type");
/* Commit */
- assert(H5T_is_atomic(dt));
+ assert(H5T_IS_ATOMIC(dt->shared));
dt->shared->u.atomic.order = order;
done:
diff --git a/src/H5Tpad.c b/src/H5Tpad.c
index 0f9085c..4c84c7e4 100644
--- a/src/H5Tpad.c
+++ b/src/H5Tpad.c
@@ -90,7 +90,7 @@ H5Tget_pad(hid_t type_id, H5T_pad_t *lsb/*out*/, H5T_pad_t *msb/*out*/)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "operation not defined for specified data type");
/* Get values */
- assert(H5T_is_atomic(dt));
+ assert(H5T_IS_ATOMIC(dt->shared));
if (lsb)
*lsb = dt->shared->u.atomic.lsb_pad;
if (msb)
@@ -141,7 +141,7 @@ H5Tset_pad(hid_t type_id, H5T_pad_t lsb, H5T_pad_t msb)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "operation not defined for specified data type");
/* Commit */
- assert(H5T_is_atomic(dt));
+ assert(H5T_IS_ATOMIC(dt->shared));
dt->shared->u.atomic.lsb_pad = lsb;
dt->shared->u.atomic.msb_pad = msb;
diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h
index e9f7c89..58fabca 100644
--- a/src/H5Tpkg.h
+++ b/src/H5Tpkg.h
@@ -51,8 +51,17 @@
/* Macro to ease detecting "complex" datatypes (i.e. those with base types or fields) */
#define H5T_IS_COMPLEX(t) ((t)==H5T_COMPOUND || (t)==H5T_ENUM || (t)==H5T_VLEN || (t)==H5T_ARRAY)
+/* Macro to ease detecting fixed "string" datatypes */
+#define H5T_IS_FIXED_STRING(dt) (H5T_STRING == (dt)->type)
+
+/* Macro to ease detecting variable-length "string" datatypes */
+#define H5T_IS_VL_STRING(dt) (H5T_VLEN == (dt)->type && H5T_VLEN_STRING == (dt)->u.vlen.type)
+
/* Macro to ease detecting fixed or variable-length "string" datatypes */
-#define H5T_IS_STRING(dt) (H5T_STRING == (dt)->type || (H5T_VLEN == (dt)->type && H5T_VLEN_STRING == (dt)->u.vlen.type))
+#define H5T_IS_STRING(dt) (H5T_IS_FIXED_STRING(dt) || H5T_IS_VL_STRING(dt))
+
+/* Macro to ease detecting atomic datatypes */
+#define H5T_IS_ATOMIC(dt) (!(H5T_IS_COMPLEX((dt)->type) || (dt)->type==H5T_OPAQUE))
/* Statistics about a conversion function */
struct H5T_stats_t {
@@ -186,7 +195,7 @@ typedef enum H5T_state_t {
/* This struct is shared between all occurances of an open named type */
typedef struct H5T_shared_t {
- hsize_t fo_count; /* number of references to this file object */
+ hsize_t fo_count; /* number of references to this file object */
H5T_state_t state; /*current state of the type */
H5F_t *sh_file;/*file pointer if this is a shared type */
H5T_class_t type; /*which class of type is this? */
@@ -314,18 +323,15 @@ H5_DLLVAR double H5T_NATIVE_DOUBLE_NEG_INF_g;
H5_DLL herr_t H5T_init_interface(void);
H5_DLL H5T_t *H5T_create(H5T_class_t type, size_t size);
H5_DLL herr_t H5T_free(H5T_t *dt);
-H5_DLL H5T_sign_t H5T_get_sign(H5T_t *dt);
+H5_DLL H5T_sign_t H5T_get_sign(H5T_t const *dt);
H5_DLL H5T_t *H5T_get_super(H5T_t *dt);
-H5_DLL char *H5T_get_member_name(H5T_t *dt, int membno);
-H5_DLL herr_t H5T_get_member_value(H5T_t *dt, int membno, void *value);
-H5_DLL H5T_t *H5T_get_member_type(H5T_t *dt, int membno);
+H5_DLL char *H5T_get_member_name(H5T_t const *dt, int membno);
+H5_DLL herr_t H5T_get_member_value(const H5T_t *dt, int membno, void *value);
H5_DLL int H5T_get_nmembers(const H5T_t *dt);
-H5_DLL htri_t H5T_is_variable_str(H5T_t *dt);
-H5_DLL htri_t H5T_is_atomic(const H5T_t *dt);
H5_DLL herr_t H5T_insert(H5T_t *parent, const char *name, size_t offset,
const H5T_t *member);
-H5_DLL H5T_t *H5T_enum_create(H5T_t *parent);
-H5_DLL herr_t H5T_enum_insert(H5T_t *dt, const char *name, void *value);
+H5_DLL H5T_t *H5T_enum_create(const H5T_t *parent);
+H5_DLL herr_t H5T_enum_insert(H5T_t *dt, const char *name, const void *value);
H5_DLL int H5T_get_array_ndims(H5T_t *dt);
H5_DLL int H5T_get_array_dims(H5T_t *dt, hsize_t dims[], int perm[]);
H5_DLL herr_t H5T_sort_value(H5T_t *dt, int *map);
@@ -876,8 +882,9 @@ H5_DLL H5T_t * H5T_array_create(H5T_t *base, int ndims,
const hsize_t dim[/* ndims */], const int perm[/* ndims */]);
/* Compound functions */
-H5_DLL size_t H5T_get_member_offset(H5T_t *dt, int membno);
-H5_DLL size_t H5T_get_member_size(H5T_t *dt, int membno);
-H5_DLL htri_t H5T_is_packed(H5T_t *dt);
+H5_DLL H5T_t *H5T_get_member_type(const H5T_t *dt, int membno);
+H5_DLL size_t H5T_get_member_offset(const H5T_t *dt, int membno);
+H5_DLL size_t H5T_get_member_size(H5T_t *dt, unsigned membno);
+H5_DLL htri_t H5T_is_packed(const H5T_t *dt);
#endif
diff --git a/src/H5Tprecis.c b/src/H5Tprecis.c
index 02c33cf..33a71e0 100644
--- a/src/H5Tprecis.c
+++ b/src/H5Tprecis.c
@@ -97,7 +97,7 @@ H5Tget_precision(hid_t type_id)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, 0, "operation not defined for specified data type");
/* Precision */
- assert(H5T_is_atomic(dt));
+ assert(H5T_IS_ATOMIC(dt->shared));
ret_value = dt->shared->u.atomic.prec;
done:
@@ -221,7 +221,7 @@ H5T_set_precision(H5T_t *dt, size_t prec)
else if(dt->shared->type!=H5T_VLEN)
dt->shared->size = dt->shared->parent->shared->size;
} else {
- if (H5T_is_atomic(dt)) {
+ if (H5T_IS_ATOMIC(dt->shared)) {
/* Adjust the offset and size */
offset = dt->shared->u.atomic.offset;
size = dt->shared->size;
@@ -259,7 +259,7 @@ H5T_set_precision(H5T_t *dt, size_t prec)
/* Commit */
dt->shared->size = size;
- if (H5T_is_atomic(dt)) {
+ if (H5T_IS_ATOMIC(dt->shared)) {
dt->shared->u.atomic.offset = offset;
dt->shared->u.atomic.prec = prec;
}
diff --git a/src/H5Tpublic.h b/src/H5Tpublic.h
index 8097546..83c118b 100644
--- a/src/H5Tpublic.h
+++ b/src/H5Tpublic.h
@@ -24,7 +24,7 @@
#define HOFFSET(S,M) (offsetof(S,M))
-/* These are the various classes of data types */
+/* These are the various classes of datatypes */
/* If this goes over 16 types (0-15), the file format will need to change) */
typedef enum H5T_class_t {
H5T_NO_CLASS = -1, /*error */
@@ -134,7 +134,7 @@ typedef enum H5T_pad_t {
/* Commands sent to conversion functions */
typedef enum H5T_cmd_t {
H5T_CONV_INIT = 0, /*query and/or initialize private data */
- H5T_CONV_CONV = 1, /*convert data from source to dest data type */
+ H5T_CONV_CONV = 1, /*convert data from source to dest datatype */
H5T_CONV_FREE = 2 /*function is being removed from path */
} H5T_cmd_t;
@@ -181,7 +181,7 @@ typedef struct {
extern "C" {
#endif
-/* All data type conversion functions are... */
+/* All datatype conversion functions are... */
typedef herr_t (*H5T_conv_t) (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
size_t nelmts, size_t buf_stride, size_t bkg_stride, void *buf,
void *bkg, hid_t dset_xfer_plist);
@@ -468,7 +468,7 @@ H5_DLLVAR hid_t H5T_NATIVE_UINT_LEAST64_g;
H5_DLLVAR hid_t H5T_NATIVE_INT_FAST64_g;
H5_DLLVAR hid_t H5T_NATIVE_UINT_FAST64_g;
-/* Operations defined on all data types */
+/* Operations defined on all datatypes */
H5_DLL hid_t H5Topen(hid_t loc_id, const char *name);
H5_DLL hid_t H5Tcreate(H5T_class_t type, size_t size);
H5_DLL hid_t H5Tcopy(hid_t type_id);
@@ -478,29 +478,29 @@ H5_DLL herr_t H5Tlock(hid_t type_id);
H5_DLL herr_t H5Tcommit(hid_t loc_id, const char *name, hid_t type_id);
H5_DLL htri_t H5Tcommitted(hid_t type_id);
-/* Operations defined on compound data types */
+/* Operations defined on compound datatypes */
H5_DLL herr_t H5Tinsert(hid_t parent_id, const char *name, size_t offset,
hid_t member_id);
H5_DLL herr_t H5Tpack(hid_t type_id);
-/* Operations defined on enumeration data types */
+/* Operations defined on enumeration datatypes */
H5_DLL hid_t H5Tenum_create(hid_t base_id);
-H5_DLL herr_t H5Tenum_insert(hid_t type, const char *name, void *value);
-H5_DLL herr_t H5Tenum_nameof(hid_t type, void *value, char *name/*out*/,
+H5_DLL herr_t H5Tenum_insert(hid_t type, const char *name, const void *value);
+H5_DLL herr_t H5Tenum_nameof(hid_t type, const void *value, char *name/*out*/,
size_t size);
H5_DLL herr_t H5Tenum_valueof(hid_t type, const char *name,
void *value/*out*/);
-/* Operations defined on variable-length data types */
+/* Operations defined on variable-length datatypes */
H5_DLL hid_t H5Tvlen_create(hid_t base_id);
-/* Operations defined on array data types */
+/* Operations defined on array datatypes */
H5_DLL hid_t H5Tarray_create(hid_t base_id, int ndims,
const hsize_t dim[/* ndims */], const int perm[/* ndims */]);
H5_DLL int H5Tget_array_ndims(hid_t type_id);
H5_DLL int H5Tget_array_dims(hid_t type_id, hsize_t dims[], int perm[]);
-/* Operations defined on opaque data types */
+/* Operations defined on opaque datatypes */
H5_DLL herr_t H5Tset_tag(hid_t type, const char *tag);
H5_DLL char *H5Tget_tag(hid_t type);
@@ -528,8 +528,7 @@ H5_DLL int H5Tget_member_index(hid_t type_id, const char *name);
H5_DLL size_t H5Tget_member_offset(hid_t type_id, int membno);
H5_DLL H5T_class_t H5Tget_member_class(hid_t type_id, int membno);
H5_DLL hid_t H5Tget_member_type(hid_t type_id, int membno);
-H5_DLL herr_t H5Tget_member_value(hid_t type_id, int membno,
- void *value/*out*/);
+H5_DLL herr_t H5Tget_member_value(hid_t type_id, int membno, void *value/*out*/);
H5_DLL H5T_cset_t H5Tget_cset(hid_t type_id);
H5_DLL htri_t H5Tis_variable_str(hid_t type_id);
H5_DLL hid_t H5Tget_native_type(hid_t type_id, H5T_direction_t direction);