From e8b497ad8eb74273f7f44ae7e515e7a5e95b50f7 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Thu, 18 Sep 2014 16:45:50 +0200 Subject: [PATCH] fix CG(empty_string) init in ZTS --- Zend/zend.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Zend/zend.c b/Zend/zend.c index 46719b4ac1..6a53179ada 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -120,6 +120,7 @@ static HashTable *global_class_table = NULL; static HashTable *global_constants_table = NULL; static HashTable *global_auto_globals_table = NULL; static HashTable *global_persistent_list = NULL; +static zend_string *default_empty_string = NULL; #endif ZEND_API zend_utility_values zend_uv; @@ -514,6 +515,15 @@ static void compiler_globals_ctor(zend_compiler_globals *compiler_globals TSRMLS compiler_globals->static_members_table = NULL; } compiler_globals->script_encoding_list = NULL; + +#ifdef ZTS + compiler_globals->empty_string = zend_string_alloc(sizeof("")-1, 1); + compiler_globals->empty_string->val[0] = '\000'; + zend_string_hash_val(compiler_globals->empty_string); + compiler_globals->empty_string->gc.u.v.flags |= IS_STR_INTERNED; + + memset(compiler_globals->one_char_string, 0, sizeof(compiler_globals->one_char_string)); +#endif } /* }}} */ @@ -538,6 +548,10 @@ static void compiler_globals_dtor(zend_compiler_globals *compiler_globals TSRMLS pefree((char*)compiler_globals->script_encoding_list, 1); } compiler_globals->last_static_member = 0; + +#ifdef ZTS + free(compiler_globals->empty_string); +#endif } /* }}} */ -- 2.50.1