mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
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:
parent
9527877930
commit
2a9daf2e15
2 changed files with 5 additions and 19 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue