From: Marcus Boerger Date: Fri, 3 Mar 2006 23:20:29 +0000 (+0000) Subject: - Make unicode handling portable (noted by andrei) X-Git-Tag: RELEASE_1_2~9 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=03be54de37c4bed34fc7b0dd07004425fde7cfda;p=php - Make unicode handling portable (noted by andrei) # Actually we should provide much more such unicode strings that we often # use like 'parent', 'self' and so on. --- diff --git a/Zend/zend_API.c b/Zend/zend_API.c index dc90676295..4916f3d47c 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2524,7 +2524,7 @@ static int zend_is_callable_check_func(int check_flags, zval ***zobj_ptr_ptr, ze *fptr_ptr = NULL; if (Z_TYPE_P(callable) == IS_UNICODE) { - if ((colon.u = u_strstr(Z_USTRVAL_P(callable), (UChar*)":\0:\0\0")) != NULL) { + if ((colon.u = u_strstr(Z_USTRVAL_P(callable), u_doublecolon)) != NULL) { mlen = u_strlen(colon.u+2); clen = Z_USTRLEN_P(callable) - mlen - 2; mname.u = colon.u + 2; diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index e1c309ed9f..804fc0e8b4 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -46,6 +46,11 @@ typedef union _temp_variable { BEGIN_EXTERN_C() +ZEND_API extern UChar u_main[sizeof("main")]; +ZEND_API extern UChar u_return[sizeof("return ")]; +ZEND_API extern UChar u_semicolon[sizeof(" ;")]; +ZEND_API extern UChar u_doublecolon[sizeof(" ;")]; + ZEND_API extern void (*zend_execute)(zend_op_array *op_array TSRMLS_DC); ZEND_API extern void (*zend_execute_internal)(zend_execute_data *execute_data_ptr, int return_value_used TSRMLS_DC); diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index f3eaabfa8b..efedd49e35 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -51,14 +51,16 @@ static DWORD timeout_thread_id; static int timeout_thread_initialized=0; #endif -static UChar u_main[sizeof("main")]; -static UChar u_return[sizeof("return ")]; -static UChar u_semicolon[sizeof(" ;")]; +UChar u_main[sizeof("main")]; +UChar u_return[sizeof("return ")]; +UChar u_semicolon[sizeof(" ;")]; +UChar u_doublecolon[sizeof(" ;")]; void init_unicode_strings() { u_charsToUChars("main", u_main, sizeof("main")); u_charsToUChars("return ", u_return, sizeof("return ")); u_charsToUChars(" ;", u_semicolon, sizeof(" ;")); + u_charsToUChars("::", u_doublecolon, sizeof("::")); } #if ZEND_DEBUG