summaryrefslogtreecommitdiffstats
path: root/src/H5L.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2006-10-02 10:24:03 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2006-10-02 10:24:03 (GMT)
commita6f6462541cc57364586f770131e2ea074d63492 (patch)
tree0debf502fb7d66f9f470edb935a62223945960d4 /src/H5L.c
parent9bc29ea538b9ce2013a8cde5be230c18cf052009 (diff)
downloadhdf5-a6f6462541cc57364586f770131e2ea074d63492.zip
hdf5-a6f6462541cc57364586f770131e2ea074d63492.tar.gz
hdf5-a6f6462541cc57364586f770131e2ea074d63492.tar.bz2
[svn-r12700] Alert:
File format is not stable, don't keep files produced! Description: First stage of checkins modifying the format of groups to support creation order. Implement "dense" storage for links in groups. Try to clarify some of the symbols for the H5L API. Add the H5Pset_latest_format() flag for FAPLs, to choose to use the newest file format options (including "dense" link storage in groups) Add the H5Pset_track_creation_order() flag for GCPLs, to enable creation order tracking in groups (although no index on creation order yet). Remove --enable-group-revision configure flag, as file format issues are now handled in a backwardly/forwardly compatible way. Clean up lots of compiler warnings and other minor formatting issues. Tested on: FreeBSD/32 4.11 (sleipnir) w/threadsafe Linux/32 2.4 (heping) w/FORTRAN & C++ Linux/64 2.4 (mir) w/enable-v1.6 compa Mac OSX/32 10.4.8 (amazon) AIX 5.3 (copper) w/parallel & FORTRAN
Diffstat (limited to 'src/H5L.c')
-rw-r--r--src/H5L.c158
1 files changed, 76 insertions, 82 deletions
diff --git a/src/H5L.c b/src/H5L.c
index 538ceb9..3cc46c7 100644
--- a/src/H5L.c
+++ b/src/H5L.c
@@ -121,13 +121,13 @@ static herr_t H5L_move_dest_cb(H5G_loc_t *grp_loc/*in*/,
static herr_t H5L_get_linfo_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name,
const H5O_link_t *lnk, H5G_loc_t UNUSED *obj_loc, void *_udata/*in,out*/,
H5G_own_loc_t *own_loc/*out*/);
-static int H5L_find_class_idx(H5L_link_t id);
+static int H5L_find_class_idx(H5L_type_t id);
/* Information about user-defined links */
-static size_t H5L_table_alloc_g = 0;
-static size_t H5L_table_used_g = 0;
-static H5L_link_class_t *H5L_table_g = NULL;
+static size_t H5L_table_alloc_g = 0;
+static size_t H5L_table_used_g = 0;
+static H5L_class_t *H5L_table_g = NULL;
@@ -172,7 +172,7 @@ done:
*
* The link class passed in will override any existing link
* class for the specified link class ID. It must at least
- * include a H5L_link_class_t version (which should be
+ * include a H5L_class_t version (which should be
* H5L_LINK_CLASS_T_VERS), a link class ID, and a traversal
* function.
*
@@ -184,7 +184,7 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5Lregister(const H5L_link_class_t *cls)
+H5Lregister(const H5L_class_t *cls)
{
herr_t ret_value=SUCCEED; /* Return value */
@@ -195,13 +195,13 @@ H5Lregister(const H5L_link_class_t *cls)
if (cls==NULL)
HGOTO_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "invalid link class")
- /* Check H5L_link_class_t version number; this is where a function to convert
+ /* Check H5L_class_t version number; this is where a function to convert
* from an outdated version should be called.
*/
if(cls->version != H5L_LINK_CLASS_T_VERS)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid H5L_link_class_t version number");
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid H5L_class_t version number");
- if (cls->id<H5L_LINK_UD_MIN || cls->id>H5L_LINK_MAX)
+ if (cls->id<H5L_TYPE_UD_MIN || cls->id>H5L_TYPE_MAX)
HGOTO_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "invalid link identification number")
if (cls->trav_func==NULL)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no traversal function specified")
@@ -231,7 +231,7 @@ done:
*-------------------------------------------------------------------------
*/
static int
-H5L_find_class_idx(H5L_link_t id)
+H5L_find_class_idx(H5L_type_t id)
{
size_t i; /* Local index variable */
int ret_value=FAIL; /* Return value */
@@ -261,11 +261,11 @@ done:
*
*-------------------------------------------------------------------------
*/
-const H5L_link_class_t *
-H5L_find_class(H5L_link_t id)
+const H5L_class_t *
+H5L_find_class(H5L_type_t id)
{
int idx; /* Filter index in global table */
- H5L_link_class_t *ret_value=NULL; /* Return value */
+ H5L_class_t *ret_value=NULL; /* Return value */
FUNC_ENTER_NOAPI(H5L_find_class, NULL)
@@ -541,6 +541,8 @@ H5Llink(hid_t new_loc_id, const char *new_name, hid_t obj_id, hid_t lcpl_id,
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a location")
if(!new_name || !*new_name)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name specified")
+ if(HDstrlen(new_name) > H5L_MAX_LINK_NAME_LEN)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADRANGE, FAIL, "name too long")
if(lcpl_id != H5P_DEFAULT && (TRUE != H5P_isa_class(lcpl_id, H5P_LINK_CREATE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a link creation property list")
@@ -691,7 +693,7 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5Lcreate_ud(hid_t link_loc_id, const char *link_name, H5L_link_t link_type,
+H5Lcreate_ud(hid_t link_loc_id, const char *link_name, H5L_type_t link_type,
const void *udata, size_t udata_size, hid_t lcpl_id, hid_t lapl_id)
{
H5G_loc_t link_loc;
@@ -856,7 +858,7 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5Lunregister(H5L_link_t id)
+H5Lunregister(H5L_type_t id)
{
herr_t ret_value=SUCCEED; /* Return value */
@@ -864,7 +866,7 @@ H5Lunregister(H5L_link_t id)
H5TRACE1("e","Ll",id);
/* Check args */
- if (id<0 || id>H5L_LINK_MAX)
+ if (id<0 || id>H5L_TYPE_MAX)
HGOTO_ERROR (H5E_ARGS, H5E_BADVALUE, FAIL, "invalid link type")
/* Do it */
@@ -891,7 +893,7 @@ done:
*
*-------------------------------------------------------------------------
*/
-htri_t H5Lis_registered(H5L_link_t id)
+htri_t H5Lis_registered(H5L_type_t id)
{
size_t i; /* Local index variable */
htri_t ret_value=FALSE; /* Return value */
@@ -899,7 +901,7 @@ htri_t H5Lis_registered(H5L_link_t id)
FUNC_ENTER_API(H5Lis_registered, FAIL)
/* Check args */
- if(id<0 || id>H5L_LINK_MAX)
+ if(id<0 || id>H5L_TYPE_MAX)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid link type id number")
/* Is the link class already registered? */
@@ -938,7 +940,7 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5L_register (const H5L_link_class_t *cls)
+H5L_register (const H5L_class_t *cls)
{
size_t i;
herr_t ret_value=SUCCEED; /* Return value */
@@ -946,7 +948,7 @@ H5L_register (const H5L_link_class_t *cls)
FUNC_ENTER_NOAPI(H5L_register, FAIL)
assert (cls);
- assert (cls->id>=0 && cls->id<=H5L_LINK_MAX);
+ assert (cls->id>=0 && cls->id<=H5L_TYPE_MAX);
/* Is the link type already registered? */
for (i=0; i<H5L_table_used_g; i++)
@@ -957,8 +959,8 @@ H5L_register (const H5L_link_class_t *cls)
if (i>=H5L_table_used_g) {
if (H5L_table_used_g>=H5L_table_alloc_g) {
size_t n = MAX(H5L_MIN_TABLE_SIZE, 2*H5L_table_alloc_g);
- H5L_link_class_t *table = H5MM_realloc(H5L_table_g,
- n*sizeof(H5L_link_class_t));
+ H5L_class_t *table = H5MM_realloc(H5L_table_g,
+ n*sizeof(H5L_class_t));
if (!table)
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "unable to extend link type table")
H5L_table_g = table;
@@ -967,12 +969,12 @@ H5L_register (const H5L_link_class_t *cls)
/* Initialize */
i = H5L_table_used_g++;
- HDmemcpy(H5L_table_g+i, cls, sizeof(H5L_link_class_t));
+ HDmemcpy(H5L_table_g+i, cls, sizeof(H5L_class_t));
} /* end if */
/* Filter already registered */
else {
/* Replace old contents */
- HDmemcpy(H5L_table_g+i, cls, sizeof(H5L_link_class_t));
+ HDmemcpy(H5L_table_g+i, cls, sizeof(H5L_class_t));
} /* end else */
done:
@@ -995,14 +997,14 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5L_unregister (H5L_link_t id)
+H5L_unregister (H5L_type_t id)
{
size_t i; /* Local index variable */
herr_t ret_value=SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5L_unregister,FAIL)
- assert (id>=0 && id<=H5L_LINK_MAX);
+ assert (id>=0 && id<=H5L_TYPE_MAX);
/* Is the filter already registered? */
for (i=0; i<H5L_table_used_g; i++)
@@ -1015,7 +1017,7 @@ H5L_unregister (H5L_link_t id)
/* Remove filter from table */
/* Don't worry about shrinking table size (for now) */
- HDmemmove(&H5L_table_g[i],&H5L_table_g[i+1],sizeof(H5L_link_class_t)*((H5L_table_used_g-1)-i));
+ HDmemmove(&H5L_table_g[i],&H5L_table_g[i+1],sizeof(H5L_class_t)*((H5L_table_used_g-1)-i));
H5L_table_used_g--;
done:
@@ -1056,7 +1058,7 @@ H5L_link(H5G_loc_t *new_loc, const char *new_name, H5G_loc_t *obj_loc,
*/
/* Construct link information for eventual insertion */
- lnk.type = H5L_LINK_HARD;
+ lnk.type = H5L_TYPE_HARD;
lnk.u.hard.addr = obj_loc->oloc->addr;
/* Create the link */
@@ -1099,7 +1101,7 @@ H5L_link_cb(H5G_loc_t *grp_loc/*in*/, const char *name, const H5O_link_t UNUSED
HGOTO_ERROR(H5E_SYM, H5E_EXISTS, FAIL, "name already exists")
/* Check for crossing file boundaries with a new hard link */
- if(udata->lnk->type == H5L_LINK_HARD) {
+ if(udata->lnk->type == H5L_TYPE_HARD) {
/* Check that both objects are in same file */
if(grp_loc->oloc->file->shared != udata->file->shared)
HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "interfile hard links are not allowed")
@@ -1110,22 +1112,18 @@ H5L_link_cb(H5G_loc_t *grp_loc/*in*/, const char *name, const H5O_link_t UNUSED
udata->lnk->name = (char *)name;
/* Insert link into group */
- if(H5G_obj_insert(grp_loc->oloc, name, udata->lnk, (hbool_t)(udata->lnk->type == H5L_LINK_HARD ? TRUE : FALSE), udata->dxpl_id) < 0)
+ if(H5G_obj_insert(grp_loc->oloc, name, udata->lnk, TRUE, udata->dxpl_id) < 0)
HGOTO_ERROR(H5E_LINK, H5E_CANTINIT, FAIL, "unable to create new link for object")
/* Set object's path if it has been passed in and is not set */
if(udata->path != NULL && udata->path->user_path_r == NULL)
- {
- if(H5G_name_set(grp_loc->path, udata->path, name) < 0)
- HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "cannot set name")
- }
+ if(H5G_name_set(grp_loc->path, udata->path, name) < 0)
+ HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "cannot set name")
/* If link is a user-defined link, trigger its creation callback if it has one*/
- if(udata->lnk->type >= H5L_LINK_UD_MIN)
+ if(udata->lnk->type >= H5L_TYPE_UD_MIN)
{
- const H5L_link_class_t *link_class; /* User-defined link class */
- H5O_loc_t temp_oloc;
- H5G_name_t temp_path;
+ const H5L_class_t *link_class; /* User-defined link class */
/* Get the link class for this type of link. */
if(NULL == (link_class = H5L_find_class(udata->lnk->type)))
@@ -1133,6 +1131,9 @@ H5L_link_cb(H5G_loc_t *grp_loc/*in*/, const char *name, const H5O_link_t UNUSED
if(link_class->create_func != NULL)
{
+ H5O_loc_t temp_oloc;
+ H5G_name_t temp_path;
+
/* Create a temporary location (or else H5G_open will do a shallow
* copy and wipe out grp_loc)
*/
@@ -1184,8 +1185,7 @@ done:
* Purpose: Creates a link at a path location
*
* lnk should have linkclass-specific information already
- * set, but this function will take care of setting
- * creation time and name.
+ * set, but this function will take care of setting name.
*
* obj_path can be NULL if the object's path doesn't need to
* be set, and obj_file can be NULL if the object is not a
@@ -1215,7 +1215,7 @@ H5L_create_real(H5G_loc_t *link_loc, const char *link_name, H5G_name_t *obj_path
HDassert(lnk);
HDassert(link_loc);
HDassert(link_name && *link_name);
- HDassert(lnk->type >= H5L_LINK_HARD && lnk->type <= H5L_LINK_MAX);
+ HDassert(lnk->type >= H5L_TYPE_HARD && lnk->type <= H5L_TYPE_MAX);
/* Get normalized link name */
if((norm_link_name = H5G_normalize(link_name)) == NULL)
@@ -1246,16 +1246,8 @@ H5L_create_real(H5G_loc_t *link_loc, const char *link_name, H5G_name_t *obj_path
/* Fill in common data for the link struct */
lnk->cset = char_encoding;
-#ifdef H5_HAVE_GETTIMEOFDAY
- {
- struct timeval now_tv;
-
- HDgettimeofday(&now_tv, NULL);
- lnk->ctime = now_tv.tv_sec;
- }
-#else /* H5_HAVE_GETTIMEOFDAY */
- lnk->ctime = HDtime(NULL);
-#endif /* H5_HAVE_GETTIMEOFDAY */
+ lnk->corder = 0; /* Will be re-written during group insertion, if the group is tracking creation order */
+ lnk->corder_valid = FALSE; /* Creation order not valid (yet) */
/* Set up user data
* file is used to make sure that hard links don't cross files, and
@@ -1325,7 +1317,7 @@ H5L_create_hard(H5G_loc_t *cur_loc, const char *cur_name,
HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "can't normalize name")
/* Set up link data specific to hard links */
- lnk.type = H5L_LINK_HARD;
+ lnk.type = H5L_TYPE_HARD;
/* Get object location for object pointed to */
obj_loc.path = &path;
@@ -1394,7 +1386,7 @@ H5L_create_soft( const char *target_path, H5G_loc_t *link_loc,
HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, FAIL, "can't normalize name")
/* Set up link data specific to soft links */
- lnk.type = H5L_LINK_SOFT;
+ lnk.type = H5L_TYPE_SOFT;
lnk.u.soft.name = norm_target;
/* Create actual link to the object */
@@ -1426,7 +1418,7 @@ done:
*/
herr_t
H5L_create_ud(H5G_loc_t *link_loc, const char *link_name, const void * ud_data,
- size_t ud_data_size, H5L_link_t type, hid_t lcpl_id, hid_t lapl_id,
+ size_t ud_data_size, H5L_type_t type, hid_t lcpl_id, hid_t lapl_id,
hid_t dxpl_id)
{
H5O_link_t lnk; /* Link to insert */
@@ -1435,7 +1427,7 @@ H5L_create_ud(H5G_loc_t *link_loc, const char *link_name, const void * ud_data,
FUNC_ENTER_NOAPI_NOINIT(H5L_create_ud)
/* Check args */
- HDassert(type >= H5L_LINK_UD_MIN && type <= H5L_LINK_MAX);
+ HDassert(type >= H5L_TYPE_UD_MIN && type <= H5L_TYPE_MAX);
HDassert(link_loc);
HDassert(link_name && *link_name);
HDassert(ud_data_size == 0 || ud_data);
@@ -1489,7 +1481,7 @@ H5L_linkval_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, const H
H5G_loc_t UNUSED *obj_loc, void *_udata/*in,out*/, H5G_own_loc_t *own_loc/*out*/)
{
H5L_trav_ud5_t *udata = (H5L_trav_ud5_t *)_udata; /* User data passed in */
- const H5L_link_class_t *link_class; /* User-defined link class */
+ const H5L_class_t *link_class; /* User-defined link class */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5L_linkval_cb)
@@ -1498,7 +1490,7 @@ H5L_linkval_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, const H
if(lnk == NULL)
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "name doesn't exist")
- if(H5L_LINK_SOFT == lnk->type)
+ if(H5L_TYPE_SOFT == lnk->type)
{
/* Copy to output buffer */
if(udata->size > 0 && udata->buf) {
@@ -1507,7 +1499,7 @@ H5L_linkval_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, const H
udata->buf[udata->size - 1] = '\0';
} /* end if */
}
- else if(lnk->type >= H5L_LINK_UD_MIN)
+ else if(lnk->type >= H5L_TYPE_UD_MIN)
{
/* Get the link class for this type of link. It's okay if the class isn't registered, though--we
* just can't give any more information about it */
@@ -1607,11 +1599,9 @@ H5L_unlink_cb(H5G_loc_t *grp_loc/*in*/, const char *name, const H5O_link_t UNUSE
HGOTO_ERROR(H5E_SYM, H5E_CANTDELETE, FAIL, "can't delete self")
/* If there is a user-defined callback, call it before deleting the link */
- if(lnk->type >= H5L_LINK_UD_MIN)
+ if(lnk->type >= H5L_TYPE_UD_MIN)
{
- const H5L_link_class_t *link_class; /* User-defined link class */
- H5O_loc_t temp_oloc;
- H5G_name_t temp_path;
+ const H5L_class_t *link_class; /* User-defined link class */
/* Get the link class for this type of link. */
if(NULL == (link_class = H5L_find_class(lnk->type)))
@@ -1619,6 +1609,9 @@ H5L_unlink_cb(H5G_loc_t *grp_loc/*in*/, const char *name, const H5O_link_t UNUSE
if(link_class->del_func != NULL)
{
+ H5O_loc_t temp_oloc;
+ H5G_name_t temp_path;
+
H5G_name_reset(&temp_path);
if(H5O_loc_copy(&temp_oloc, grp_loc->oloc, H5_COPY_DEEP) < 0)
@@ -1738,7 +1731,7 @@ H5L_move_dest_cb(H5G_loc_t *grp_loc/*in*/, const char *name,
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "an object with that name already exists")
/* Check for crossing file boundaries with a new hard link */
- if(udata->lnk->type == H5L_LINK_HARD) {
+ if(udata->lnk->type == H5L_TYPE_HARD) {
/* Check that both objects are in same file */
if(grp_loc->oloc->file->shared != udata->file->shared)
HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "moving a link across files is not allowed")
@@ -1747,19 +1740,16 @@ H5L_move_dest_cb(H5G_loc_t *grp_loc/*in*/, const char *name,
/* Give the object its new name */
/* Casting away const okay -JML */
HDassert(udata->lnk->name == NULL);
-/* JAMES udata->lnk->name = H5MM_xfree(udata->lnk->name); */
- udata->lnk->name= (char *)name;
+ udata->lnk->name = (char *)name;
/* Insert the link into the group */
- if(H5G_obj_insert(grp_loc->oloc, name, udata->lnk, (hbool_t)(udata->lnk->type == H5L_LINK_HARD ? TRUE : FALSE), udata->dxpl_id) < 0)
+ if(H5G_obj_insert(grp_loc->oloc, name, udata->lnk, TRUE, udata->dxpl_id) < 0)
HGOTO_ERROR(H5E_LINK, H5E_CANTINIT, FAIL, "unable to create new link to object")
/* If the link was a user-defined link, call its move callback if it has one */
- if(udata->lnk->type >= H5L_LINK_UD_MIN)
+ if(udata->lnk->type >= H5L_TYPE_UD_MIN)
{
- const H5L_link_class_t *link_class; /* User-defined link class */
- H5O_loc_t temp_oloc;
- H5G_name_t temp_path;
+ const H5L_class_t *link_class; /* User-defined link class */
/* Get the link class for this type of link. */
if(NULL == (link_class = H5L_find_class(udata->lnk->type)))
@@ -1767,6 +1757,9 @@ H5L_move_dest_cb(H5G_loc_t *grp_loc/*in*/, const char *name,
if((!udata->copy && link_class->move_func != NULL) || (udata->copy && link_class->move_func))
{
+ H5O_loc_t temp_oloc;
+ H5G_name_t temp_path;
+
/* Create a temporary location (or else H5G_open will do a shallow
* copy and wipe out grp_loc)
*/
@@ -1860,23 +1853,23 @@ H5L_move_cb(H5G_loc_t *grp_loc/*in*/, const char *name, const H5O_link_t *lnk,
/* Get object type */
switch(lnk->type) {
- case H5L_LINK_HARD:
+ case H5L_TYPE_HARD:
if(H5G_UNKNOWN == (type = H5O_obj_type(obj_loc->oloc, udata->dxpl_id)))
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, FAIL, "unable to get object type to move")
break;
- case H5L_LINK_SOFT:
+ case H5L_TYPE_SOFT:
type = H5G_LINK;
break;
default:
- if(lnk->type < H5L_LINK_UD_MIN)
+ if(lnk->type < H5L_TYPE_UD_MIN)
HGOTO_ERROR(H5E_LINK, H5E_BADTYPE, FAIL, "unrecognized link type")
type = H5G_UDLINK;
} /* end switch */
/* Set up user data for move_dest_cb */
- if((udata_out.lnk = H5O_link_copy(lnk, NULL, 0)) == NULL)
+ if((udata_out.lnk = H5O_copy(H5O_LINK_ID, lnk, NULL)) == NULL)
HGOTO_ERROR(H5E_LINK, H5E_CANTCOPY, FAIL, "unable to copy link to be moved");
/* In this special case, the link's name is going to be replaced at its
* destination, so we should free it here.
@@ -1922,9 +1915,9 @@ done:
*/
if(link_copied)
{
- if(udata_out.lnk->type == H5L_LINK_SOFT)
+ if(udata_out.lnk->type == H5L_TYPE_SOFT)
udata_out.lnk->u.soft.name = H5MM_xfree(udata_out.lnk->u.soft.name);
- else if(udata_out.lnk->type >= H5L_LINK_UD_MIN && udata_out.lnk->u.ud.size > 0)
+ else if(udata_out.lnk->type >= H5L_TYPE_UD_MIN && udata_out.lnk->u.ud.size > 0)
udata_out.lnk->u.ud.udata = H5MM_xfree(udata_out.lnk->u.ud.udata);
/* JAMES: the dest_cb already frees the link name. Hmm. */
H5MM_xfree(udata_out.lnk);
@@ -2048,7 +2041,7 @@ H5L_get_linfo_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, const
{
H5L_trav_ud1_t *udata = (H5L_trav_ud1_t *)_udata; /* User data passed in */
H5L_linkinfo_t *linfo = udata->linfo;
- const H5L_link_class_t *link_class; /* User-defined link class */
+ const H5L_class_t *link_class; /* User-defined link class */
ssize_t cb_ret; /* Return value from UD callback */
herr_t ret_value = SUCCEED; /* Return value */
@@ -2062,21 +2055,22 @@ H5L_get_linfo_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, const
if(linfo)
{
linfo->cset = lnk->cset;
- linfo->ctime = lnk->ctime;
- linfo->linkclass = lnk->type;
+ linfo->corder = lnk->corder;
+ linfo->corder_valid = lnk->corder_valid;
+ linfo->type = lnk->type;
switch(lnk->type)
{
- case H5L_LINK_HARD:
+ case H5L_TYPE_HARD:
linfo->u.address = lnk->u.hard.addr;
break;
- case H5L_LINK_SOFT:
+ case H5L_TYPE_SOFT:
linfo->u.link_size = HDstrlen(lnk->u.soft.name) + 1; /*count the null terminator*/
break;
default:
- if(lnk->type < H5L_LINK_UD_MIN || lnk->type > H5L_LINK_MAX)
+ if(lnk->type < H5L_TYPE_UD_MIN || lnk->type > H5L_TYPE_MAX)
HGOTO_ERROR(H5E_LINK, H5E_BADTYPE, FAIL, "unknown link class")
/* User-defined link; call its query function to get the link udata size. */