summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjhendersonHDF <jhenderson@hdfgroup.org>2023-08-02 20:14:59 (GMT)
committerGitHub <noreply@github.com>2023-08-02 20:14:59 (GMT)
commitf2ba867b58f22809af3dfb2d087c700587835359 (patch)
tree25e8fa8f30791731170b88517965f8e8cff9fd6d /src
parentd8dd57aba1cb78771ff1c86330b08453e0cc2838 (diff)
downloadhdf5-f2ba867b58f22809af3dfb2d087c700587835359.zip
hdf5-f2ba867b58f22809af3dfb2d087c700587835359.tar.gz
hdf5-f2ba867b58f22809af3dfb2d087c700587835359.tar.bz2
Fix H5Otoken_to_str call in h5dump and other minor cleanup (#3314) (#3329)
Diffstat (limited to 'src')
-rw-r--r--src/H5Dint.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/H5Dint.c b/src/H5Dint.c
index 9c74d45..301e803 100644
--- a/src/H5Dint.c
+++ b/src/H5Dint.c
@@ -3540,11 +3540,11 @@ done:
hid_t
H5D_get_create_plist(const H5D_t *dset)
{
- H5P_genplist_t *dcpl_plist; /* Dataset's DCPL */
- H5P_genplist_t *new_plist; /* Copy of dataset's DCPL */
- H5O_layout_t copied_layout; /* Layout to tweak */
- H5O_fill_t copied_fill; /* Fill value to tweak */
- H5O_efl_t copied_efl; /* External file list to tweak */
+ H5P_genplist_t *dcpl_plist; /* Dataset's DCPL */
+ H5P_genplist_t *new_plist; /* Copy of dataset's DCPL */
+ H5O_layout_t copied_layout; /* Layout to tweak */
+ H5O_fill_t copied_fill = {0}; /* Fill value to tweak */
+ H5O_efl_t copied_efl; /* External file list to tweak */
hid_t new_dcpl_id = FAIL;
hid_t ret_value = H5I_INVALID_HID; /* Return value */
@@ -3697,11 +3697,15 @@ H5D_get_create_plist(const H5D_t *dset)
ret_value = new_dcpl_id;
done:
- if (ret_value < 0)
+ if (ret_value < 0) {
if (new_dcpl_id > 0)
if (H5I_dec_app_ref(new_dcpl_id) < 0)
HDONE_ERROR(H5E_DATASET, H5E_CANTDEC, FAIL, "unable to close temporary object");
+ if (copied_fill.type && (H5T_close_real(copied_fill.type) < 0))
+ HDONE_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "Can't free temporary datatype");
+ }
+
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D_get_create_plist() */