summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
authorElena Pourmal <epourmal@hdfgroup.org>2003-10-13 17:26:37 (GMT)
committerElena Pourmal <epourmal@hdfgroup.org>2003-10-13 17:26:37 (GMT)
commit5de413e72ffc63a6a6153b407e0edf4f937884ae (patch)
treec9d1f5ecad872aba446121502d1535f72f92a7a8 /fortran
parent7e448b4393b2b83f186a871e54fcd3758492ec5b (diff)
downloadhdf5-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.c12
-rw-r--r--fortran/src/H5Pff.f904
-rw-r--r--fortran/src/H5f90proto.h4
-rw-r--r--fortran/test/tH5P.f902
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