#define add_assoc_ascii_stringl_ex(arg, key, key_len, str, length, flags) do { \
if (UG(unicode)) { \
- UChar *___u_str = zend_ascii_to_unicode((str), (length)+1 ZEND_FILE_LINE_CC); \
+ int ___u_len = length; \
+ UChar *___u_str = zend_ascii_to_unicode((str), (___u_len)+1 ZEND_FILE_LINE_CC); \
if ((flags) & ZSTR_AUTOFREE) { \
efree(str); \
} \
- add_assoc_unicodel_ex(arg, key, key_len, ___u_str, length, 0); \
+ add_assoc_unicodel_ex(arg, key, key_len, ___u_str, ___u_len, 0); \
} else { \
add_assoc_stringl_ex(arg, key, key_len, (char*)(str), length, (flags) & ZSTR_DUPLICATE); \
} \
#define add_ascii_assoc_ascii_stringl_ex(arg, key, key_len, str, length, flags) do { \
if (UG(unicode)) { \
- UChar *___u_str = zend_ascii_to_unicode((str), (length)+1 ZEND_FILE_LINE_CC); \
+ int ___u_len = length; \
+ UChar *___u_str = zend_ascii_to_unicode((str), (___u_len)+1 ZEND_FILE_LINE_CC); \
if ((flags) & ZSTR_AUTOFREE) { \
efree(str); \
} \
- add_ascii_assoc_unicodel_ex(arg, key, key_len, ___u_str, length, 0); \
+ add_ascii_assoc_unicodel_ex(arg, key, key_len, ___u_str, ___u_len, 0); \
} else { \
add_ascii_assoc_stringl_ex(arg, key, key_len, (char*)(str), length, (flags) & ZSTR_DUPLICATE); \
} \
#define add_rt_assoc_ascii_stringl_ex(arg, key, key_len, str, length, flags) do { \
if (UG(unicode)) { \
- UChar *___u_str = zend_ascii_to_unicode((str), (length)+1 ZEND_FILE_LINE_CC); \
+ int ___u_len = length; \
+ UChar *___u_str = zend_ascii_to_unicode((str), (___u_len)+1 ZEND_FILE_LINE_CC); \
if ((flags) & ZSTR_AUTOFREE) { \
efree(str); \
} \
- add_rt_assoc_unicodel_ex(arg, key, key_len, ___u_str, length, 0); \
+ add_rt_assoc_unicodel_ex(arg, key, key_len, ___u_str, ___u_len, 0); \
} else { \
add_rt_assoc_stringl_ex(arg, key, key_len, (char*)(str), length, (flags) & ZSTR_DUPLICATE); \
} \
#define add_utf8_assoc_ascii_stringl_ex(arg, key, key_len, str, length, flags) do { \
if (UG(unicode)) { \
- UChar *___u_str = zend_ascii_to_unicode((str), (length)+1 ZEND_FILE_LINE_CC); \
+ int ___u_len = length; \
+ UChar *___u_str = zend_ascii_to_unicode((str), (___u_len)+1 ZEND_FILE_LINE_CC); \
if ((flags) & ZSTR_AUTOFREE) { \
efree(str); \
} \
- add_utf8_assoc_unicodel_ex(arg, key, key_len, ___u_str, length, 0); \
+ add_utf8_assoc_unicodel_ex(arg, key, key_len, ___u_str, ___u_len, 0); \
} else { \
add_utf8_assoc_stringl_ex(arg, key, key_len, (char*)(str), length, (flags) & ZSTR_DUPLICATE); \
} \
#define add_utf8_property_ascii_stringl_ex(arg, key, key_len, str, length, flags) do { \
if (UG(unicode)) { \
- UChar *___u_str = zend_ascii_to_unicode((str), (length)+1 ZEND_FILE_LINE_CC); \
+ int ___u_len = length; \
+ UChar *___u_str = zend_ascii_to_unicode((str), (___u_len)+1 ZEND_FILE_LINE_CC); \
if ((flags) & ZSTR_AUTOFREE) { \
efree(str); \
} \
- add_utf8_property_unicodel_ex(arg, key, key_len, ___u_str, length, 0); \
+ add_utf8_property_unicodel_ex(arg, key, key_len, ___u_str, ___u_len, 0); \
} else { \
add_utf8_property_stringl_ex(arg, key, key_len, (char*)(str), length, (flags) & ZSTR_DUPLICATE); \
} \
#define add_u_assoc_ascii_stringl_ex(arg, type, key, key_len, str, length, flags) do { \
if (UG(unicode)) { \
- UChar *___u_str = zend_ascii_to_unicode((str), (length)+1 ZEND_FILE_LINE_CC); \
+ int ___u_len = length; \
+ UChar *___u_str = zend_ascii_to_unicode((str), (___u_len)+1 ZEND_FILE_LINE_CC); \
if ((flags) & ZSTR_AUTOFREE) { \
efree(str); \
} \
- add_u_assoc_unicodel_ex(arg, type, key, key_len, ___u_str, length, 0); \
+ add_u_assoc_unicodel_ex(arg, type, key, key_len, ___u_str, ___u_len, 0); \
} else { \
add_u_assoc_stringl_ex(arg, type, key, key_len, (char*)(str), length, (flags) & ZSTR_DUPLICATE); \
} \
#define add_index_ascii_stringl(arg, idx, str, length, flags) do { \
if (UG(unicode)) { \
- UChar *___u_str = zend_ascii_to_unicode((str), (length)+1 ZEND_FILE_LINE_CC); \
+ int ___u_len; \
+ UChar *___u_str = zend_ascii_to_unicode((str), (___u_len)+1 ZEND_FILE_LINE_CC); \
if ((flags) & ZSTR_AUTOFREE) { \
efree(str); \
} \
- add_index_unicodel(arg, idx, ___u_str, length, 0); \
+ add_index_unicodel(arg, idx, ___u_str, ___u_len, 0); \
} else { \
add_index_stringl(arg, idx, (char*)(str), length, (flags) & ZSTR_DUPLICATE); \
} \
#define add_next_index_ascii_stringl(arg, str, length, flags) do { \
if (UG(unicode)) { \
- UChar *___u_str = zend_ascii_to_unicode((str), (length)+1 ZEND_FILE_LINE_CC); \
+ int ___u_len = length; \
+ UChar *___u_str = zend_ascii_to_unicode((str), (___u_len)+1 ZEND_FILE_LINE_CC); \
if ((flags) & ZSTR_AUTOFREE) { \
efree(str); \
} \
- add_next_index_unicodel(arg, ___u_str, length, 0); \
+ add_next_index_unicodel(arg, ___u_str, ___u_len, 0); \
} else { \
add_next_index_stringl(arg, (char*)(str), length, (flags) & ZSTR_DUPLICATE); \
} \
#define ZVAL_ASCII_STRINGL(z, s, l, flags) \
if (UG(unicode)) { \
- UChar *u_str = zend_ascii_to_unicode((s), (l)+1 ZEND_FILE_LINE_CC); \
+ int u_len = l; \
+ UChar *u_str = zend_ascii_to_unicode((s), (u_len)+1 ZEND_FILE_LINE_CC); \
if ((flags) & ZSTR_AUTOFREE) { \
efree(s); \
} \
- ZVAL_UNICODEL(z, u_str, l, 0); \
+ ZVAL_UNICODEL(z, u_str, u_len, 0); \
} else { \
char *__s=(s); int __l=l; \
Z_STRLEN_P(z) = __l; \