From 8653f01910c1c69f7f7b45ce31f937c07f041187 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Wed, 13 Dec 2000 19:35:07 -0500 Subject: [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) --- src/H5P.c | 4 +++- src/H5Tconv.c | 10 +++++----- 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; -- cgit v0.12