Close unused resource in dscreate and dsread. Otherwise, the file will not be close when close() is called.

See  the following for Delayed close, which is close dataset after exe terminate: https://www.hdfgroup.org/HDF5/doc/RM/RM_H5F.html#File-Close

change tab to 4 blanks
pull/668/head
Han Hu 9 years ago
parent 6768e48c22
commit 50f718fdc7
  1. 4
      modules/hdf/src/hdf5.cpp

@ -536,7 +536,7 @@ void HDF5Impl::dscreate( const int n_dims, const int* sizes, const int type,
}
// create data
H5Dcreate( m_h5_file_id, dslabel.c_str(), dstype,
hid_t dsdata = H5Dcreate( m_h5_file_id, dslabel.c_str(), dstype,
dspace, H5P_DEFAULT, dsdcpl, H5P_DEFAULT );
if ( channs > 1 )
@ -548,6 +548,7 @@ void HDF5Impl::dscreate( const int n_dims, const int* sizes, const int type,
H5Pclose( dsdcpl );
H5Sclose( dspace );
H5Dclose( dsdata );
}
// overload
@ -663,6 +664,7 @@ void HDF5Impl::dsread( OutputArray Array, String dslabel,
delete [] mxdims;
delete [] foffset;
H5Tclose (h5type );
H5Tclose( dstype );
H5Sclose( dspace );
H5Sclose( fspace );

Loading…
Cancel
Save