From 228eaf5bc44eb9b91e1bd08862973fcad547e919 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Sat, 15 Aug 2015 11:26:20 +0200 Subject: [PATCH] fix pointer truncation cases --- ext/mbstring/oniguruma/regint.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ext/mbstring/oniguruma/regint.h b/ext/mbstring/oniguruma/regint.h index 0fba09bb584..7ab233aeb4a 100644 --- a/ext/mbstring/oniguruma/regint.h +++ b/ext/mbstring/oniguruma/regint.h @@ -227,17 +227,17 @@ } while(0) /* sizeof(OnigCodePoint) */ -#define WORD_ALIGNMENT_SIZE SIZEOF_LONG +#define WORD_ALIGNMENT_SIZE SIZEOF_SIZE_T #define GET_ALIGNMENT_PAD_SIZE(addr,pad_size) do {\ (pad_size) = WORD_ALIGNMENT_SIZE \ - - ((unsigned int )(addr) % WORD_ALIGNMENT_SIZE);\ + - ((size_t)(addr) % WORD_ALIGNMENT_SIZE);\ if ((pad_size) == WORD_ALIGNMENT_SIZE) (pad_size) = 0;\ } while (0) #define ALIGNMENT_RIGHT(addr) do {\ (addr) += (WORD_ALIGNMENT_SIZE - 1);\ - (addr) -= ((unsigned int )(addr) % WORD_ALIGNMENT_SIZE);\ + (addr) -= ((size_t)(addr) % WORD_ALIGNMENT_SIZE);\ } while (0) #endif /* PLATFORM_UNALIGNED_WORD_ACCESS */ @@ -688,7 +688,11 @@ typedef struct { BBuf* mbuf; /* multi-byte info or NULL */ } CClassNode; +#ifdef _WIN64 +typedef __int64 OnigStackIndex; +#else typedef long OnigStackIndex; +#endif typedef struct _OnigStackType { unsigned int type;