From: Sebastian Bergmann Date: Sun, 16 Feb 2003 11:34:49 +0000 (+0000) Subject: ZTS fixes X-Git-Tag: RELEASE_0_5~984 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6d300baf8473cc257da6580f13269c1d48668826;p=php ZTS fixes --- diff --git a/Zend/zend.c b/Zend/zend.c index e3b538a3e2..aba1f37e64 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -370,7 +370,7 @@ static FILE *zend_fopen_wrapper(const char *filename, char **opened_path) } -static void register_standard_class(void) +static void register_standard_class(TSRMLS_D) { zend_standard_class_def = malloc(sizeof(zend_class_entry)); @@ -378,7 +378,7 @@ static void register_standard_class(void) zend_standard_class_def->name = zend_strndup("stdClass", zend_standard_class_def->name_length); zend_standard_class_def->name_length = sizeof("stdClass") - 1; zend_standard_class_def->parent = NULL; - zend_initialize_class_data(zend_standard_class_def, 1); + zend_initialize_class_data(zend_standard_class_def, 1 TSRMLS_CC); zend_hash_add(GLOBAL_CLASS_TABLE, "stdclass", sizeof("stdclass"), &zend_standard_class_def, sizeof(zend_class_entry *), NULL); } @@ -560,7 +560,6 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions, i zend_hash_init_ex(GLOBAL_FUNCTION_TABLE, 100, NULL, ZEND_FUNCTION_DTOR, 1, 0); zend_hash_init_ex(GLOBAL_CLASS_TABLE, 10, NULL, ZEND_CLASS_DTOR, 1, 0); - register_standard_class(); zend_hash_init_ex(&module_registry, 50, NULL, ZEND_MODULE_DTOR, 1, 0); zend_init_rsrc_list_dtors(); @@ -597,6 +596,7 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions, i EG(user_error_handler) = NULL; EG(user_exception_handler) = NULL; #endif + register_standard_class(TSRMLS_C); zend_register_standard_constants(TSRMLS_C); #ifndef ZTS diff --git a/Zend/zend_API.c b/Zend/zend_API.c index ea58f98610..b772b15c74 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1360,7 +1360,7 @@ ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *orig_c class_entry->type = ZEND_INTERNAL_CLASS; class_entry->parent = NULL; - zend_initialize_class_data(class_entry, 0); + zend_initialize_class_data(class_entry, 0 TSRMLS_CC); if (class_entry->builtin_functions) { zend_register_functions(class_entry, class_entry->builtin_functions, &class_entry->function_table, MODULE_PERSISTENT TSRMLS_CC); diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index c103be1cc3..815770e441 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1663,7 +1663,7 @@ void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce) do_inherit_parent_constructor(ce); } -static void create_class(HashTable *class_table, char *name, int name_length, zend_class_entry **ce) +static void create_class(HashTable *class_table, char *name, int name_length, zend_class_entry **ce TSRMLS_DC) { zend_class_entry *new_class_entry; @@ -1674,7 +1674,7 @@ static void create_class(HashTable *class_table, char *name, int name_length, ze new_class_entry->name = estrndup(name, name_length); new_class_entry->name_length = name_length; new_class_entry->parent = NULL; - zend_initialize_class_data(new_class_entry, 1); + zend_initialize_class_data(new_class_entry, 1 TSRMLS_CC); zend_str_tolower(new_class_entry->name, new_class_entry->name_length); @@ -1686,7 +1686,7 @@ static void create_class(HashTable *class_table, char *name, int name_length, ze #include "../TSRM/tsrm_strtok_r.h" -static int create_nested_class(HashTable *class_table, char *path, zend_class_entry *new_ce) +static int create_nested_class(HashTable *class_table, char *path, zend_class_entry *new_ce TSRMLS_DC) { char *cur, *temp; char *last; @@ -1696,7 +1696,7 @@ static int create_nested_class(HashTable *class_table, char *path, zend_class_en cur = tsrm_strtok_r(path, ":", &temp); if (zend_hash_find(class_table, cur, strlen(cur)+1, (void **)&pce) == FAILURE) { - create_class(class_table, cur, strlen(cur), &ce); + create_class(class_table, cur, strlen(cur), &ce TSRMLS_CC); } else { ce = *pce; } @@ -1709,7 +1709,7 @@ static int create_nested_class(HashTable *class_table, char *path, zend_class_en break; } if (zend_hash_find(&ce->class_table, last, strlen(last)+1, (void **)&pce) == FAILURE) { - create_class(&ce->class_table, last, strlen(last), &ce); + create_class(&ce->class_table, last, strlen(last), &ce TSRMLS_CC); } else { ce = *pce; } @@ -1756,7 +1756,7 @@ ZEND_API int do_bind_function(zend_op *opline, HashTable *function_table, HashTa } -ZEND_API int do_bind_class(zend_op *opline, HashTable *function_table, HashTable *class_table) +ZEND_API int do_bind_class(zend_op *opline, HashTable *function_table, HashTable *class_table TSRMLS_DC) { zend_class_entry *ce, **pce; @@ -1767,7 +1767,7 @@ ZEND_API int do_bind_class(zend_op *opline, HashTable *function_table, HashTable ce = *pce; } if (strchr(opline->op2.u.constant.value.str.val, ':')) { - return create_nested_class(class_table, opline->op2.u.constant.value.str.val, ce); + return create_nested_class(class_table, opline->op2.u.constant.value.str.val, ce TSRMLS_CC); } ce->refcount++; if (zend_hash_add(class_table, opline->op2.u.constant.value.str.val, opline->op2.u.constant.value.str.len+1, &ce, sizeof(zend_class_entry *), NULL)==FAILURE) { @@ -1779,7 +1779,7 @@ ZEND_API int do_bind_class(zend_op *opline, HashTable *function_table, HashTable } } -ZEND_API int do_bind_inherited_class(zend_op *opline, HashTable *function_table, HashTable *class_table, zend_class_entry *parent_ce) +ZEND_API int do_bind_inherited_class(zend_op *opline, HashTable *function_table, HashTable *class_table, zend_class_entry *parent_ce TSRMLS_DC) { zend_class_entry *ce, **pce; int found_ce; @@ -1796,7 +1796,7 @@ ZEND_API int do_bind_inherited_class(zend_op *opline, HashTable *function_table, zend_do_inheritance(ce, parent_ce); if (strchr(opline->op2.u.constant.value.str.val, ':')) { - return create_nested_class(class_table, opline->op2.u.constant.value.str.val, ce); + return create_nested_class(class_table, opline->op2.u.constant.value.str.val, ce TSRMLS_CC); } ce->refcount++; @@ -2136,7 +2136,7 @@ void zend_do_begin_class_declaration(znode *class_token, znode *class_name, znod new_class_entry->type = ZEND_USER_CLASS; new_class_entry->parent = NULL; - zend_initialize_class_data(new_class_entry, 1); + zend_initialize_class_data(new_class_entry, 1 TSRMLS_CC); if (parent_class_name->op_type != IS_UNUSED) { doing_inheritance = 1; @@ -3289,7 +3289,7 @@ void zend_do_declare_namespace_constant(znode *var_name, znode *value TSRMLS_DC) FREE_PNODE(var_name); } -void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers) +void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers TSRMLS_DC) { zend_bool persistent_hashes = (ce->type == ZEND_INTERNAL_CLASS) ? 1 : 0; diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index a43501ad36..aec37e0159 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -336,8 +336,8 @@ void zend_do_end_catch(znode *try_token TSRMLS_DC); void zend_do_throw(znode *expr TSRMLS_DC); ZEND_API int do_bind_function(zend_op *opline, HashTable *function_table, HashTable *class_table, int compile_time); -ZEND_API int do_bind_class(zend_op *opline, HashTable *function_table, HashTable *class_table); -ZEND_API int do_bind_inherited_class(zend_op *opline, HashTable *function_table, HashTable *class_table, zend_class_entry *parent_ce); +ZEND_API int do_bind_class(zend_op *opline, HashTable *function_table, HashTable *class_table TSRMLS_DC); +ZEND_API int do_bind_inherited_class(zend_op *opline, HashTable *function_table, HashTable *class_table, zend_class_entry *parent_ce TSRMLS_DC); void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce); void zend_do_early_binding(TSRMLS_D); @@ -470,7 +470,7 @@ int pass_two(zend_op_array *op_array TSRMLS_DC); zend_brk_cont_element *get_next_brk_cont_element(zend_op_array *op_array); ZEND_API zend_bool zend_is_compiling(TSRMLS_D); ZEND_API char *zend_make_compiled_string_description(char *name TSRMLS_DC); -void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers); +void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers TSRMLS_DC); int zend_register_auto_global(char *name, uint name_len TSRMLS_DC); diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 4caed9cb1c..8fa5402c73 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -3868,14 +3868,14 @@ int zend_ext_fcall_end_handler(ZEND_OPCODE_HANDLER_ARGS) int zend_declare_class_handler(ZEND_OPCODE_HANDLER_ARGS) { - do_bind_class(EX(opline), EG(function_table), EG(class_table)); + do_bind_class(EX(opline), EG(function_table), EG(class_table) TSRMLS_CC); NEXT_OPCODE(); } int zend_declare_inherited_class_handler(ZEND_OPCODE_HANDLER_ARGS) { - do_bind_inherited_class(EX(opline), EG(function_table), EG(class_table), EX_T(EX(opline)->extended_value).EA.class_entry); + do_bind_inherited_class(EX(opline), EG(function_table), EG(class_table), EX_T(EX(opline)->extended_value).EA.class_entry TSRMLS_CC); NEXT_OPCODE(); } diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 77d43788e2..0b1020a7b1 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -194,7 +194,7 @@ void shutdown_executor(TSRMLS_D) { /* return to global namespace here */ if(EG(active_namespace) != EG(global_namespace_ptr)) { - zend_switch_namespace(EG(global_namespace_ptr)); + zend_switch_namespace(EG(global_namespace_ptr) TSRMLS_CC); } zend_try {