diff options
author | Elena Pourmal <epourmal@hdfgroup.org> | 2003-10-13 17:26:37 (GMT) |
---|---|---|
committer | Elena Pourmal <epourmal@hdfgroup.org> | 2003-10-13 17:26:37 (GMT) |
commit | 5de413e72ffc63a6a6153b407e0edf4f937884ae (patch) | |
tree | c9d1f5ecad872aba446121502d1535f72f92a7a8 /fortran | |
parent | 7e448b4393b2b83f186a871e54fcd3758492ec5b (diff) | |
download | hdf5-5de413e72ffc63a6a6153b407e0edf4f937884ae.zip hdf5-5de413e72ffc63a6a6153b407e0edf4f937884ae.tar.gz hdf5-5de413e72ffc63a6a6153b407e0edf4f937884ae.tar.bz2 |
[svn-r7606]
Purpose: Bug fix
Description: Type of the third argument to the h5pset(get)_cache_f subroutines
was incorrect (INTEGER instead of INTEGER(SIZE_T)).
I was confused while doing my previous change since
fortran docs were wrong, and the type of the same argument in
1_4 branch is INTEGER. I forgot to check carefully #if def for
1_4 branch in the C code, and encountered only int type for the
corresponding C functions. Since Fortran doesn't support
backward compatibility, type of the argument should be
always in sync with the latest branch.
Solution: ALWAYS, ALWAYS pay attention to compiler's warning.
Fixed type to be INTEGER(SIZE_T).
Platforms tested: kelgia, copper 64-bit mode, solaris 2.7 64-bit mode.
Misc. update:
Diffstat (limited to 'fortran')
-rw-r--r-- | fortran/src/H5Pf.c | 12 | ||||
-rw-r--r-- | fortran/src/H5Pff.f90 | 4 | ||||
-rw-r--r-- | fortran/src/H5f90proto.h | 4 | ||||
-rw-r--r-- | fortran/test/tH5P.f90 | 2 |
4 files changed, 11 insertions, 11 deletions
diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c index 50305fd..a1dc96b 100644 --- a/fortran/src/H5Pf.c +++ b/fortran/src/H5Pf.c @@ -1098,13 +1098,13 @@ nh5pget_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist * instead of double *---------------------------------------------------------------------------*/ int_f -nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f* rdcc_nbytes , real_f* rdcc_w0 ) +nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_t_f* rdcc_nbytes , real_f* rdcc_w0 ) { int ret_value = -1; hid_t c_prp_id; herr_t ret; int c_mdc_nelmts; - int c_rdcc_nelmts; + size_t c_rdcc_nelmts; size_t c_rdcc_nbytes; double c_rdcc_w0; c_rdcc_nbytes =(size_t) *rdcc_nbytes; @@ -1115,7 +1115,7 @@ nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_ */ c_prp_id = (hid_t)*prp_id; c_mdc_nelmts = (int)*mdc_nelmts; - c_rdcc_nelmts = (int)*rdcc_nelmts; + c_rdcc_nelmts = (size_t)*rdcc_nelmts; ret = H5Pset_cache(c_prp_id, c_mdc_nelmts, c_rdcc_nelmts, c_rdcc_nbytes, c_rdcc_w0 ); if (ret < 0) return ret_value; ret_value = 0; @@ -1155,7 +1155,7 @@ nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_ ret = H5Pget_cache(c_prp_id, &c_mdc_nelmts, &c_rdcc_nelmts, &c_rdcc_nbytes, &c_rdcc_w0); if (ret < 0) return ret_value; *mdc_nelmts = (int_f)c_mdc_nelmts; - *rdcc_nelmts = (int_f)c_rdcc_nelmts; + *rdcc_nelmts = (size_t_f)c_rdcc_nelmts; *rdcc_nbytes = (size_t_f)c_rdcc_nbytes; *rdcc_w0 = (real_f)c_rdcc_w0; @@ -1560,7 +1560,7 @@ nh5pset_external_c (hid_t_f *prp_id, _fcd name, int_f* namelen, int_f* offset, h hid_t c_prp_id; herr_t ret; hsize_t c_bytes; - const char* c_name; + char* c_name; int c_namelen; off_t c_offset; c_bytes = (hsize_t) *bytes; @@ -1581,7 +1581,7 @@ nh5pset_external_c (hid_t_f *prp_id, _fcd name, int_f* namelen, int_f* offset, h ret_value = 0; DONE: - HDfree(c_name); + free(c_name); return ret_value; } diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90 index 00534bc..87ccdee 100644 --- a/fortran/src/H5Pff.f90 +++ b/fortran/src/H5Pff.f90 @@ -2110,7 +2110,7 @@ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier INTEGER, INTENT(IN) :: mdc_nelmts !Number of elements (objects) ! in the meta data cache - INTEGER, INTENT(IN) :: rdcc_nelmts !Number of elements (objects) + INTEGER(SIZE_T), INTENT(IN) :: rdcc_nelmts !Number of elements (objects) ! in the meta data cache INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes !Total size of the raw data !chunk cache, in bytes @@ -2128,7 +2128,7 @@ !DEC$ ENDIF INTEGER(HID_T), INTENT(IN) :: prp_id INTEGER, INTENT(IN) :: mdc_nelmts - INTEGER, INTENT(IN) :: rdcc_nelmts + INTEGER(SIZE_T), INTENT(IN) :: rdcc_nelmts INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes REAL, INTENT(IN) :: rdcc_w0 END FUNCTION h5pset_cache_c diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index 464184e..ea014ca 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -1018,9 +1018,9 @@ nh5pset_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plis H5_DLL int_f nh5pget_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ); H5_DLL int_f -nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0); +nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0); H5_DLL int_f -nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0); +nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, size_t_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0); H5_DLL int_f nh5pget_fapl_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist); H5_DLL int_f diff --git a/fortran/test/tH5P.f90 b/fortran/test/tH5P.f90 index 635d4bf..15809bf 100644 --- a/fortran/test/tH5P.f90 +++ b/fortran/test/tH5P.f90 @@ -167,7 +167,7 @@ INTEGER(HSIZE_T), DIMENSION(7) :: data_dims_b INTEGER, DIMENSION(7) :: data_dims INTEGER :: mdc_nelmts - INTEGER :: rdcc_nelmts + INTEGER(SIZE_T) :: rdcc_nelmts INTEGER(SIZE_T) :: rdcc_nbytes REAL :: rdcc_w0 memb_fapl = H5P_DEFAULT_F |