summaryrefslogtreecommitdiffstats
path: root/src/H5Odtype.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Odtype.c')
-rw-r--r--src/H5Odtype.c60
1 files changed, 24 insertions, 36 deletions
diff --git a/src/H5Odtype.c b/src/H5Odtype.c
index 05ca879..73d8909 100644
--- a/src/H5Odtype.c
+++ b/src/H5Odtype.c
@@ -26,7 +26,7 @@
/* PRIVATE PROTOTYPES */
static herr_t H5O_dtype_encode (H5F_t *f, uint8_t *p, const void *mesg);
-static void *H5O_dtype_decode (H5F_t *f, hid_t dxpl_id, const uint8_t *p, H5O_shared_t *sh);
+static void *H5O_dtype_decode (H5F_t *f, hid_t dxpl_id, const uint8_t *p);
static void *H5O_dtype_copy (const void *_mesg, void *_dest, unsigned update_flags);
static size_t H5O_dtype_size (const H5F_t *f, const void *_mesg);
static herr_t H5O_dtype_reset (void *_mesg);
@@ -67,10 +67,6 @@ const H5O_class_t H5O_DTYPE[1] = {{
* class objects (array definitely, potentially compound & vlen sequences also) */
#define H5O_DTYPE_VERSION_UPDATED 2
-/* Declare external the free list for H5T_t's */
-H5FL_EXTERN(H5T_t);
-H5FL_EXTERN(H5T_shared_t);
-
/*-------------------------------------------------------------------------
* Function: H5O_dtype_decode_helper
@@ -823,8 +819,7 @@ done:
function using malloc() and is returned to the caller.
--------------------------------------------------------------------------*/
static void *
-H5O_dtype_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p,
- H5O_shared_t UNUSED *sh)
+H5O_dtype_decode(H5F_t *f, hid_t UNUSED dxpl_id, const uint8_t *p)
{
H5T_t *dt = NULL;
void *ret_value; /* Return value */
@@ -1103,8 +1098,6 @@ H5O_dtype_free (void *mesg)
* Programmer: Robb Matzke
* Monday, June 1, 1998
*
- * Modifications:
- *
*-------------------------------------------------------------------------
*/
static herr_t
@@ -1112,25 +1105,26 @@ H5O_dtype_get_share(H5F_t UNUSED *f, const void *_mesg,
H5O_shared_t *sh/*out*/)
{
const H5T_t *dt = (const H5T_t *)_mesg;
- herr_t ret_value=SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
+
+ FUNC_ENTER_NOAPI_NOINIT(H5O_dtype_get_share)
- FUNC_ENTER_NOAPI_NOINIT(H5O_dtype_get_share);
+ HDassert(dt);
+ HDassert(sh);
- assert (dt);
- assert (sh);
+ /* Check for object location address defined */
+ if(!H5F_addr_defined(dt->oloc.addr))
+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "datatype is not sharable")
- if (H5F_addr_defined (dt->ent.header)) {
- /* If the address is defined, this had better be a named datatype */
- HDassert (H5T_STATE_NAMED==dt->shared->state || H5T_STATE_OPEN==dt->shared->state);
+ /* If the address is defined, this had better be a named datatype */
+ HDassert(H5T_STATE_NAMED == dt->shared->state || H5T_STATE_OPEN == dt->shared->state);
- sh->in_gh = FALSE;
- sh->u.ent = dt->ent;
- } else
- HGOTO_ERROR (H5E_DATATYPE, H5E_CANTINIT, FAIL, "datatype is not sharable");
+ /* Copy object location info */
+ H5O_loc_copy(&(sh->oloc), &(dt->oloc), H5O_COPY_DEEP);
done:
- FUNC_LEAVE_NOAPI(ret_value);
-}
+ FUNC_LEAVE_NOAPI(ret_value)
+} /* end H5O_dtype_get_share() */
/*-------------------------------------------------------------------------
@@ -1143,33 +1137,27 @@ done:
* Programmer: Robb Matzke
* Thursday, June 4, 1998
*
- * Modifications:
- *
- * Pedro Vicente, <pvn@ncsa.uiuc.edu> 22 Aug 2002
- * Added `id to name' support.
- *
*-------------------------------------------------------------------------
*/
static herr_t
-H5O_dtype_set_share (H5F_t UNUSED *f, void *_mesg/*in,out*/,
+H5O_dtype_set_share(H5F_t UNUSED *f, void *_mesg/*in,out*/,
const H5O_shared_t *sh)
{
H5T_t *dt = (H5T_t *)_mesg;
- FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_dtype_set_share);
+ FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_dtype_set_share)
- assert (dt);
- assert (sh);
- assert (!sh->in_gh);
+ HDassert(dt);
+ HDassert(sh);
- /* NULL copy here, names not appropriate */
- H5G_ent_copy(&(dt->ent),&(sh->u.ent),H5G_COPY_NULL);
+ /* Retrieve object location information */
+ H5O_loc_copy(&(dt->oloc), &(sh->oloc), H5O_COPY_DEEP);
/* Note that the datatype is a named datatype */
dt->shared->state = H5T_STATE_NAMED;
- FUNC_LEAVE_NOAPI(SUCCEED);
-}
+ FUNC_LEAVE_NOAPI(SUCCEED)
+} /* end H5O_dtype_set_share() */
/*--------------------------------------------------------------------------