summaryrefslogtreecommitdiffstats
path: root/src/H5private.h
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2004-12-10 22:08:12 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2004-12-10 22:08:12 (GMT)
commitf558ddfb18b3b5c189a738f34faa3d60d303a2ac (patch)
treea87e577c63db049f461b257854ff2110ced93605 /src/H5private.h
parentb1df0a57aa0024ccbef406d04673260b8924e76c (diff)
downloadhdf5-f558ddfb18b3b5c189a738f34faa3d60d303a2ac.zip
hdf5-f558ddfb18b3b5c189a738f34faa3d60d303a2ac.tar.gz
hdf5-f558ddfb18b3b5c189a738f34faa3d60d303a2ac.tar.bz2
[svn-r9654] Purpose:
Description: In file H5FDsec2.c and H5FDlog.c, there's statements like H5_ASSIGN_OVERFLOW(file->eof,sb.st_size,off_t,haddr_t); It assumes sb.st_size from h5_stat_t is of type off_t. But on Windows, it has type __int64. So the H5_ASSIGN_OVERFLOW statement may cause problem. Instead of trying to do switch between Windows and other systems in H5FDsec2.c and H5FDlog.c, define a substituting type in H5private.h to fix the problem. On Windows, this type is __int64; on other systems, it is off_t. Platforms tested: fuss. Simple fix. Already did h5committest for v1.6.
Diffstat (limited to 'src/H5private.h')
-rw-r--r--src/H5private.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/H5private.h b/src/H5private.h
index 86b975c..5421b6c 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -618,15 +618,18 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...);
/* definitions related to the file stat utilities */
#ifdef WIN32
#ifdef __MWERKS__
- #define HDfstat(F,B) fstat(F,B)
+ #define HDfstat(F,B) fstat(F,B)
typedef struct stat h5_stat_t;
+ typedef off_t h5_stat_size_t;
#else /*MSVC*/
#define HDfstat(F,B) _fstati64(F,B)
typedef struct _stati64 h5_stat_t;
+ typedef __int64 h5_stat_size_t;
#endif
#else
#define HDfstat(F,B) fstat(F,B)
typedef struct stat h5_stat_t;
+typedef off_t h5_stat_size_t;
#endif
#define HDftell(F) ftell(F)