Drop zend_long64 in favor of int64_t

Also drop ZEND_HAVE_LONG64, because we already require the
presence of a int64_t type.
This commit is contained in:
Nikita Popov 2014-10-16 12:10:24 +02:00
parent 9527877930
commit 2a9daf2e15
2 changed files with 5 additions and 19 deletions

View file

@ -84,10 +84,10 @@
} \ } \
} while (0) } while (0)
#elif SIZEOF_ZEND_LONG == 4 && defined(HAVE_ZEND_LONG64) #elif SIZEOF_ZEND_LONG == 4
#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ #define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \
zend_long64 __result = (zend_long64) (a) * (zend_long64) (b); \ int64_t __result = (int64_t) (a) * (int64_t) (b); \
if (__result > ZEND_LONG_MAX || __result < ZEND_LONG_MIN) { \ if (__result > ZEND_LONG_MAX || __result < ZEND_LONG_MIN) { \
(dval) = (double) __result; \ (dval) = (double) __result; \
(usedval) = 1; \ (usedval) = 1; \
@ -206,13 +206,13 @@ static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, si
return res; return res;
} }
#elif SIZEOF_SIZE_T == 4 && defined(HAVE_ZEND_LONG64) #elif SIZEOF_SIZE_T == 4
static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, size_t offset, int *overflow) static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, size_t offset, int *overflow)
{ {
zend_ulong64 res = (zend_ulong64)nmemb * (zend_ulong64)size + (zend_ulong64)offset; uint64_t res = (uint64_t) nmemb * (uint64_t) size + (uint64_t) offset;
if (UNEXPECTED(res > (zend_ulong64)0xFFFFFFFFL)) { if (UNEXPECTED(res > UINT64_C(0xFFFFFFFF))) {
*overflow = 1; *overflow = 1;
return 0; return 0;
} }

View file

@ -64,20 +64,6 @@ typedef enum {
# endif # endif
#endif #endif
#define HAVE_ZEND_LONG64
#ifdef ZEND_WIN32
typedef __int64 zend_long64;
typedef unsigned __int64 zend_ulong64;
#elif SIZEOF_LONG_LONG_INT == 8
typedef long long int zend_long64;
typedef unsigned long long int zend_ulong64;
#elif SIZEOF_LONG_LONG == 8
typedef long long zend_long64;
typedef unsigned long long zend_ulong64;
#else
# undef HAVE_ZEND_LONG64
#endif
/* XXX this won't work on X32 platform */ /* XXX this won't work on X32 platform */
#ifdef ZEND_ENABLE_ZVAL_LONG64 #ifdef ZEND_ENABLE_ZVAL_LONG64
typedef int64_t zend_intptr_t; typedef int64_t zend_intptr_t;