[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.
This commit is contained in:
Raymond Lu
2004-12-10 17:08:12 -05:00
parent b1df0a57aa
commit f558ddfb18
3 changed files with 6 additions and 3 deletions

View File

@@ -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)