diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2009-03-10 19:00:39 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2009-03-10 19:00:39 (GMT) |
commit | b4ff3e6e79a46fb474eb1786a11a7d2451455111 (patch) | |
tree | b73756af2d3eaee487c4087d55fbb04e1eba62b5 /src/H5Gloc.c | |
parent | da5058310c324dcce93dc9328ef2bd53bf1fed02 (diff) | |
download | hdf5-b4ff3e6e79a46fb474eb1786a11a7d2451455111.zip hdf5-b4ff3e6e79a46fb474eb1786a11a7d2451455111.tar.gz hdf5-b4ff3e6e79a46fb474eb1786a11a7d2451455111.tar.bz2 |
[svn-r16560] Description:
Remove another call to H5E_clear_stack() from within the library.
Clean up lots of compiler warnings.
Tested on:
Mac OS X/32 10.5.6 (amazon)
(followup on other platforms forthcoming)
Diffstat (limited to 'src/H5Gloc.c')
-rw-r--r-- | src/H5Gloc.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/H5Gloc.c b/src/H5Gloc.c index 908c9a3..b6a3a17 100644 --- a/src/H5Gloc.c +++ b/src/H5Gloc.c @@ -727,6 +727,7 @@ H5G_loc_set_comment_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, { H5G_loc_sc_t *udata = (H5G_loc_sc_t *)_udata; /* User data passed in */ H5O_name_t comment; /* Object header "comment" message */ + htri_t exists; /* Whether a "comment" message already exists */ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT(H5G_loc_set_comment_cb) @@ -735,9 +736,14 @@ H5G_loc_set_comment_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, if(obj_loc == NULL) HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "name doesn't exist") + /* Check for existing comment message */ + if((exists = H5O_msg_exists(obj_loc->oloc, H5O_NAME_ID, udata->dxpl_id)) < 0) + HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, FAIL, "unable to read object header") + /* Remove the previous comment message if any */ - if(H5O_msg_remove(obj_loc->oloc, H5O_NAME_ID, 0, TRUE, udata->dxpl_id) < 0) - H5E_clear_stack(NULL); + if(exists) + if(H5O_msg_remove(obj_loc->oloc, H5O_NAME_ID, 0, TRUE, udata->dxpl_id) < 0) + HGOTO_ERROR(H5E_SYM, H5E_CANTDELETE, FAIL, "unable to delete existing comment object header message") /* Add the new message */ if(udata->comment && *udata->comment) { @@ -830,7 +836,7 @@ H5G_loc_get_comment_cb(H5G_loc_t UNUSED *grp_loc/*in*/, const char UNUSED *name, } else { if(udata->comment && udata->bufsize) HDstrncpy(udata->comment, comment.s, udata->bufsize); - udata->comment_size = HDstrlen(comment.s); + udata->comment_size = (ssize_t)HDstrlen(comment.s); H5O_msg_reset(H5O_NAME_ID, &comment); } /* end else */ |