Fixed ADD_INTERNED_STRING() logic to support strings that are already interned. (Terry)

This commit is contained in:
Dmitry Stogov 2014-01-09 13:48:08 +04:00
parent 748e707bf9
commit b5fbde9c5b

View file

@ -33,11 +33,13 @@
#if ZEND_EXTENSION_API_NO > PHP_5_3_X_API_NO
# define ADD_INTERNED_STRING(str, len) do { \
const char *tmp = accel_new_interned_string((str), (len), !IS_INTERNED((str)) TSRMLS_CC); \
if (tmp != (str)) { \
(str) = (char*)tmp; \
} else { \
ADD_DUP_SIZE((str), (len)); \
if (!IS_INTERNED(str)) { \
const char *tmp = accel_new_interned_string((str), (len), 1 TSRMLS_CC); \
if (tmp != (str)) { \
(str) = (char*)tmp; \
} else { \
ADD_DUP_SIZE((str), (len)); \
} \
} \
} while (0)
#else