diff options
author | Elena Pourmal <epourmal@hdfgroup.org> | 2000-10-24 20:52:00 (GMT) |
---|---|---|
committer | Elena Pourmal <epourmal@hdfgroup.org> | 2000-10-24 20:52:00 (GMT) |
commit | ac1c2474525b5e96dd429b9fba4396b133ae2d4b (patch) | |
tree | 97aa9fbd0043db46381d515a6c6006ca68d71765 | |
parent | 5b442958f8171e367de47d3aaf126804edf41175 (diff) | |
download | hdf5-ac1c2474525b5e96dd429b9fba4396b133ae2d4b.zip hdf5-ac1c2474525b5e96dd429b9fba4396b133ae2d4b.tar.gz hdf5-ac1c2474525b5e96dd429b9fba4396b133ae2d4b.tar.bz2 |
[svn-r2729]
Purpose:
Bug fix
Description:
Attribute test failed on O2K. h5aget_name_f function could not
return correct attribute name.
Solution:
size function parameter had wrong datatype in F90 subroutine.
Fixed it to be of INTEGER(SIZE_T) type.
Platforms tested:
O2K, Linux
-rw-r--r-- | fortran/src/H5Af.c | 9 | ||||
-rw-r--r-- | fortran/src/H5Aff.f90 | 4 |
2 files changed, 6 insertions, 7 deletions
diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c index 504e937..ad13910 100644 --- a/fortran/src/H5Af.c +++ b/fortran/src/H5Af.c @@ -412,7 +412,7 @@ nh5aget_name_c(hid_t_f *attr_id, size_t_f *bufsize, _fcd buf) * Allocate buffer to hold name of an attribute */ c_bufsize = *bufsize; - c_buf = (char *)HDmalloc(c_bufsize +1); + c_buf = (char *)HDmalloc((int)c_bufsize +1); if (c_buf == NULL) return ret_value; /* @@ -425,9 +425,8 @@ nh5aget_name_c(hid_t_f *attr_id, size_t_f *bufsize, _fcd buf) /* * Convert C name to FORTRAN and place it in the given buffer */ - - HDpackFstring(c_buf, _fcdtocp(buf), c_bufsize); - HDfree( c_buf); - ret_value = c_size; + HDpackFstring(c_buf, _fcdtocp(buf), (int)c_bufsize); + HDfree(c_buf); + ret_value = (int_f)c_size; return ret_value; } diff --git a/fortran/src/H5Aff.f90 b/fortran/src/H5Aff.f90 index 1bc2225..506048f 100644 --- a/fortran/src/H5Aff.f90 +++ b/fortran/src/H5Aff.f90 @@ -979,8 +979,8 @@ SUBROUTINE h5aget_name_f(attr_id, size, buf, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier - INTEGER, INTENT(IN) :: size ! Buffer size - CHARACTER(LEN=*), INTENT(OUT) :: buf + INTEGER(SIZE_T), INTENT(IN) :: size ! Buffer size + CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Buffer to hold attribute name INTEGER, INTENT(OUT) :: hdferr ! Error code: ! name length is successful, |