summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2000-12-14 00:35:07 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2000-12-14 00:35:07 (GMT)
commit8653f01910c1c69f7f7b45ce31f937c07f041187 (patch)
tree68397edf6ad5066eed851bba1a2f6c98df054363
parente974009fd6aabf9bb2c60adfeb52855e2138afbb (diff)
downloadhdf5-8653f01910c1c69f7f7b45ce31f937c07f041187.zip
hdf5-8653f01910c1c69f7f7b45ce31f937c07f041187.tar.gz
hdf5-8653f01910c1c69f7f7b45ce31f937c07f041187.tar.bz2
[svn-r3133] Purpose:
Bug fix Description: Set the background buffer type to different values for compound vs. vlen & array datatypes. Platforms tested: Cray J90 (killeen)
-rw-r--r--src/H5P.c4
-rw-r--r--src/H5Tconv.c10
2 files changed, 8 insertions, 6 deletions
diff --git a/src/H5P.c b/src/H5P.c
index c99928e..c35ddf6 100644
--- a/src/H5P.c
+++ b/src/H5P.c
@@ -7039,6 +7039,8 @@ static herr_t H5P_close_list(void *_plist)
/* Destroy property list object */
H5MM_xfree(plist);
+ ret_value=SUCCEED; /* return value */
+
done:
FUNC_LEAVE (ret_value);
} /* H5P_close_list() */
@@ -7083,7 +7085,7 @@ herr_t H5Pclose_list(hid_t plist_id)
} /* end if */
/* Close the property list */
- if (H5P_close_list(plist) < 0)
+ if ((ret_value=H5P_close_list(plist)) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTFREE, FAIL, "can't close");
done:
diff --git a/src/H5Tconv.c b/src/H5Tconv.c
index 8cbca15..f63f30d 100644
--- a/src/H5Tconv.c
+++ b/src/H5Tconv.c
@@ -796,7 +796,7 @@ H5T_conv_b_b(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
*-------------------------------------------------------------------------
*/
static herr_t
-H5T_conv_need_bkg (H5T_t *src, H5T_t *dst, H5T_cdata_t *cdata)
+H5T_conv_need_bkg (H5T_t *src, H5T_t *dst, H5T_cdata_t *cdata, H5T_bkg_t bkg_type)
{
FUNC_ENTER (H5T_conv_need_bkg, FAIL);
@@ -805,7 +805,7 @@ H5T_conv_need_bkg (H5T_t *src, H5T_t *dst, H5T_cdata_t *cdata)
assert(cdata);
if (H5T_detect_class(src,H5T_COMPOUND)==TRUE || H5T_detect_class(dst,H5T_COMPOUND)==TRUE)
- cdata->need_bkg = H5T_BKG_YES;
+ cdata->need_bkg = bkg_type;
FUNC_LEAVE (SUCCEED);
}
@@ -931,7 +931,7 @@ H5T_conv_struct_init (H5T_t *src, H5T_t *dst, H5T_cdata_t *cdata)
}
/* Check if we need a background buffer */
- H5T_conv_need_bkg (src, dst, cdata);
+ H5T_conv_need_bkg (src, dst, cdata, H5T_BKG_TEMP);
cdata->recalc = FALSE;
FUNC_LEAVE (SUCCEED);
@@ -1845,7 +1845,7 @@ H5T_conv_vlen(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
assert (H5T_VLEN==dst->type);
/* Check if we need a background buffer */
- H5T_conv_need_bkg (src, dst, cdata);
+ H5T_conv_need_bkg (src, dst, cdata, H5T_BKG_YES);
break;
@@ -2080,7 +2080,7 @@ H5T_conv_array(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts,
#endif /* LATER */
/* Check if we need a background buffer */
- H5T_conv_need_bkg (src, dst, cdata);
+ H5T_conv_need_bkg (src, dst, cdata, H5T_BKG_YES);
break;