diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2014-07-15 07:06:38 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2014-07-15 07:06:38 +0000 |
commit | 15a3c5c0dc3253647bbf40b2826fbbbb8474fab3 (patch) | |
tree | 710e89852ecf9dd53be67344408954ca21ca4a72 /Build/source/libs/zziplib/zziplib-0.13.62/zzip/zip.c | |
parent | 12488878f1c86fcf3f6be3364da9761036213135 (diff) |
Avoid cast from pointer to integer of different size on 64-bit Windows
git-svn-id: svn://tug.org/texlive/trunk@34615 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/zziplib/zziplib-0.13.62/zzip/zip.c')
-rw-r--r-- | Build/source/libs/zziplib/zziplib-0.13.62/zzip/zip.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Build/source/libs/zziplib/zziplib-0.13.62/zzip/zip.c b/Build/source/libs/zziplib/zziplib-0.13.62/zzip/zip.c index a574b24be18..a4b06b47189 100644 --- a/Build/source/libs/zziplib/zziplib-0.13.62/zzip/zip.c +++ b/Build/source/libs/zziplib/zziplib-0.13.62/zzip/zip.c @@ -374,15 +374,19 @@ __zzip_fetch_disk_trailer(int fd, zzip_off_t filesize, * making pointer alignments to values that can be handled as structures * is tricky. We assume here that an align(4) is sufficient even for * 64 bit machines. Note that binary operations are not usually allowed - * to pointer types but we do need only the lower bits in this implementation, - * so we can just cast the value to a long value. + * to pointer types but we can cast the value to a suitably sized integer. */ _zzip_inline static char * __zzip_aligned4(char *p) { #define aligned4 __zzip_aligned4 - p += ((long) p) & 1; /* warnings about truncation of a "pointer" */ - p += ((long) p) & 2; /* to a "long int" may be safely ignored :) */ +#ifdef _WIN64 + p += ((__int64) p) & 1; + p += ((__int64) p) & 2; +#else + p += ((long) p) & 1; + p += ((long) p) & 2; +#endif return p; } |