diff options
129 files changed, 120 insertions, 471 deletions
diff --git a/TSRM/TSRM.c b/TSRM/TSRM.c index efdea5c880..b1f992c91d 100644 --- a/TSRM/TSRM.c +++ b/TSRM/TSRM.c @@ -791,4 +791,9 @@ void tsrm_error_set(int level, char *debug_filename) #endif } +TSRM_API inline void *tsrm_get_ls_cache(void) +{ + return tsrm_tls_get(); +} + #endif /* ZTS */ diff --git a/TSRM/TSRM.h b/TSRM/TSRM.h index b232429d4d..b303c13a6a 100644 --- a/TSRM/TSRM.h +++ b/TSRM/TSRM.h @@ -155,17 +155,32 @@ TSRM_API void *tsrm_new_interpreter_context(void); TSRM_API void *tsrm_set_interpreter_context(void *new_ctx); TSRM_API void tsrm_free_interpreter_context(void *context); +TSRM_API inline void *tsrm_get_ls_cache(void); + +#ifdef TSRM_WIN32 +# define TSRM_TLS __declspec(thread) +#else +# define TSRM_TLS __thread +#endif + #define TSRM_SHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)+1) #define TSRM_UNSHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)-1) #define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL) #define TSRMLS_FETCH_FROM_CTX(ctx) void ***tsrm_ls = (void ***) ctx -#define TSRMLS_SET_CTX(ctx) ctx = (void ***) tsrm_ls -#define TSRMG(id, type, element) (((type) (*((void ***) tsrm_ls))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element) -#define TSRMLS_D void ***tsrm_ls -#define TSRMLS_DC , TSRMLS_D -#define TSRMLS_C tsrm_ls -#define TSRMLS_CC , TSRMLS_C +#define TSRMLS_SET_CTX(ctx) ctx = (void ***) tsrm_get_ls_cache() +#define TSRMG(id, type, element) (((type) (*((void ***) tsrm_get_ls_cache()))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element) + +#define TSRMG_STATIC(id, type, element) (((type) (*((void ***) _tsrm_ls_cache))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element) +#define TSRMLS_CACHE_EXTERN extern TSRM_TLS void *_tsrm_ls_cache +#define TSRMLS_CACHE_DEFINE TSRM_TLS void *_tsrm_ls_cache +#define TSRMLS_CACHE_UPDATE _tsrm_ls_cache = tsrm_get_ls_cache() + +/* BC only */ +#define TSRMLS_D +#define TSRMLS_DC +#define TSRMLS_C +#define TSRMLS_CC #ifdef __cplusplus } @@ -176,6 +191,13 @@ TSRM_API void tsrm_free_interpreter_context(void *context); #define TSRMLS_FETCH() #define TSRMLS_FETCH_FROM_CTX(ctx) #define TSRMLS_SET_CTX(ctx) + +#define TSRMG_STATIC(id, type, element) +#define TSRMLS_CACHE_EXTERN +#define TSRMLS_CACHE_DEFINE +#define TSRMLS_CACHE_UPDATE + +/* BC only */ #define TSRMLS_D void #define TSRMLS_DC #define TSRMLS_C diff --git a/Zend/Makefile.am b/Zend/Makefile.am index 2a76db36b1..09018a0d3d 100644 --- a/Zend/Makefile.am +++ b/Zend/Makefile.am @@ -20,6 +20,7 @@ libZend_la_SOURCES=\ zend_strtod.c zend_closures.c zend_float.c zend_string.c zend_signal.c \ zend_generators.c zend_virtual_cwd.c zend_ast.c +libZend_la_CFLAGS = -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 libZend_la_LDFLAGS = libZend_la_LIBADD = @ZEND_EXTRA_LIBS@ diff --git a/Zend/zend.c b/Zend/zend.c index 7fef34c94e..a7d3bc156e 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; +ZEND_TSRMLS_CACHE_DEFINE; #endif ZEND_API zend_utility_values zend_uv; @@ -557,6 +558,7 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions TS zend_executor_globals *executor_globals; extern ZEND_API ts_rsrc_id ini_scanner_globals_id; extern ZEND_API ts_rsrc_id language_scanner_globals_id; + ZEND_TSRMLS_CACHE_UPDATE; #else extern zend_ini_scanner_globals ini_scanner_globals; extern zend_php_scanner_globals language_scanner_globals; @@ -705,16 +707,16 @@ void zend_post_startup(TSRMLS_D) /* {{{ */ free(compiler_globals->function_table); free(compiler_globals->class_table); if ((script_encoding_list = (zend_encoding **)compiler_globals->script_encoding_list)) { - compiler_globals_ctor(compiler_globals, tsrm_ls); + compiler_globals_ctor(compiler_globals TSRMLS_CC); compiler_globals->script_encoding_list = (const zend_encoding **)script_encoding_list; } else { - compiler_globals_ctor(compiler_globals, tsrm_ls); + compiler_globals_ctor(compiler_globals TSRMLS_CC); } free(EG(zend_constants)); virtual_cwd_deactivate(TSRMLS_C); - executor_globals_ctor(executor_globals, tsrm_ls); + executor_globals_ctor(executor_globals TSRMLS_CC); global_persistent_list = &EG(persistent_list); zend_copy_ini_directives(TSRMLS_C); #else @@ -807,8 +809,6 @@ void zenderror(const char *error) /* {{{ */ BEGIN_EXTERN_C() ZEND_API void _zend_bailout(char *filename, uint lineno) /* {{{ */ { - TSRMLS_FETCH(); - if (!EG(bailout)) { zend_output_debug_string(1, "%s(%d) : Bailed out without a bailout address!", filename, lineno); exit(-1); @@ -974,7 +974,6 @@ static void zend_error_va_list(int type, const char *format, va_list args) zend_stack delayed_oplines_stack; zend_stack context_stack; zend_array *symbol_table; - TSRMLS_FETCH(); /* Report about uncaught exception in case of fatal errors */ if (EG(exception)) { diff --git a/Zend/zend.h b/Zend/zend.h index 969fa5e71b..81c165210f 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -60,6 +60,20 @@ !ZEND_USER_CODE(EX(prev_execute_data)->func->common.type) || \ !(EX(prev_execute_data)->opline->result_type & EXT_TYPE_UNUSED)) +#ifdef ZEND_ENABLE_STATIC_TSRMLS_CACHE +#define ZEND_TSRMG TSRMG_STATIC +#define ZEND_TSRMLS_CACHE_EXTERN TSRMLS_CACHE_EXTERN +#define ZEND_TSRMLS_CACHE_DEFINE TSRMLS_CACHE_DEFINE +#define ZEND_TSRMLS_CACHE_UPDATE TSRMLS_CACHE_UPDATE +#else +#define ZEND_TSRMG TSRMG +#define ZEND_TSRMLS_CACHE_EXTERN +#define ZEND_TSRMLS_CACHE_DEFINE +#define ZEND_TSRMLS_CACHE_UPDATE +#endif + +ZEND_TSRMLS_CACHE_EXTERN; + #ifdef HAVE_NORETURN # if defined(ZEND_WIN32) ZEND_API ZEND_NORETURN void zend_error_noreturn(int type, const char *format, ...); diff --git a/Zend/zend_API.c b/Zend/zend_API.c index dd60dcb5fb..5fa509bc6f 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -48,7 +48,6 @@ ZEND_API int zend_get_parameters(int ht, int param_count, ...) /* {{{ */ int arg_count; va_list ptr; zval **param, *param_ptr; - TSRMLS_FETCH(); param_ptr = ZEND_CALL_ARG(EG(current_execute_data), 1); arg_count = EG(current_execute_data)->num_args; @@ -84,7 +83,6 @@ ZEND_API int zend_get_parameters_ex(int param_count, ...) /* {{{ */ int arg_count; va_list ptr; zval **param, *param_ptr; - TSRMLS_FETCH(); param_ptr = ZEND_CALL_ARG(EG(current_execute_data), 1); arg_count = EG(current_execute_data)->num_args; @@ -2475,8 +2473,6 @@ static void clean_module_classes(int module_number TSRMLS_DC) /* {{{ */ void module_destructor(zend_module_entry *module) /* {{{ */ { - TSRMLS_FETCH(); - if (module->type == MODULE_TEMPORARY) { zend_clean_module_rsrc_dtors(module->module_number TSRMLS_CC); clean_module_constants(module->module_number TSRMLS_CC); diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index dd1c2d6450..aea04d82f0 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -354,8 +354,6 @@ static ZEND_NORETURN void zend_mm_safe_error(zend_mm_heap *heap, #endif size_t size) { - TSRMLS_FETCH(); - heap->overflow = 1; zend_try { zend_error_noreturn(E_ERROR, @@ -2009,7 +2007,7 @@ typedef struct _zend_alloc_globals { #ifdef ZTS static int alloc_globals_id; -# define AG(v) TSRMG(alloc_globals_id, zend_alloc_globals *, v) +# define AG(v) ZEND_TSRMG(alloc_globals_id, zend_alloc_globals *, v) #else # define AG(v) (alloc_globals.v) static zend_alloc_globals alloc_globals; @@ -2046,7 +2044,6 @@ ZEND_API int is_zend_mm(TSRMLS_D) # define _ZEND_BIN_ALLOCATOR(_num, _size, _elements, _pages, x, y) \ ZEND_API void* ZEND_FASTCALL _emalloc_ ## _size(void) { \ - TSRMLS_FETCH(); \ ZEND_MM_CUSTOM_ALLOCATOR(_size); \ return zend_mm_alloc_small(AG(mm_heap), _size, _num ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); \ } @@ -2055,23 +2052,18 @@ ZEND_MM_BINS_INFO(_ZEND_BIN_ALLOCATOR, x, y) ZEND_API void* ZEND_FASTCALL _emalloc_large(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { - TSRMLS_FETCH(); - ZEND_MM_CUSTOM_ALLOCATOR(size); return zend_mm_alloc_large(AG(mm_heap), size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); } ZEND_API void* ZEND_FASTCALL _emalloc_huge(size_t size) { - TSRMLS_FETCH(); - ZEND_MM_CUSTOM_ALLOCATOR(size); return zend_mm_alloc_huge(AG(mm_heap), size); } # define _ZEND_BIN_FREE(_num, _size, _elements, _pages, x, y) \ ZEND_API void ZEND_FASTCALL _efree_ ## _size(void *ptr) { \ - TSRMLS_FETCH(); \ ZEND_MM_CUSTOM_DEALLOCATOR(ptr); \ { \ size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE); \ @@ -2088,8 +2080,6 @@ ZEND_MM_BINS_INFO(_ZEND_BIN_FREE, x, y) ZEND_API void ZEND_FASTCALL _efree_large(void *ptr, size_t size) { - TSRMLS_FETCH(); - ZEND_MM_CUSTOM_DEALLOCATOR(ptr); { size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE); @@ -2106,8 +2096,6 @@ ZEND_API void ZEND_FASTCALL _efree_large(void *ptr, size_t size) ZEND_API void ZEND_FASTCALL _efree_huge(void *ptr, size_t size) { - TSRMLS_FETCH(); - ZEND_MM_CUSTOM_DEALLOCATOR(ptr); // TODO: use size??? zend_mm_free_huge(AG(mm_heap), ptr); @@ -2116,8 +2104,6 @@ ZEND_API void ZEND_FASTCALL _efree_huge(void *ptr, size_t size) ZEND_API void* ZEND_FASTCALL _emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { - TSRMLS_FETCH(); - #if ZEND_MM_CUSTOM if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) { return AG(mm_heap)->_malloc(size); @@ -2128,8 +2114,6 @@ ZEND_API void* ZEND_FASTCALL _emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LI ZEND_API void ZEND_FASTCALL _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { - TSRMLS_FETCH(); - #if ZEND_MM_CUSTOM if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) { AG(mm_heap)->_free(ptr); @@ -2141,8 +2125,6 @@ ZEND_API void ZEND_FASTCALL _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_OR ZEND_API void* ZEND_FASTCALL _erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { - TSRMLS_FETCH(); - if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) { return AG(mm_heap)->_realloc(ptr, size); } @@ -2194,9 +2176,7 @@ ZEND_API void* ZEND_FASTCALL _safe_realloc(void *ptr, size_t nmemb, size_t size, ZEND_API void* ZEND_FASTCALL _ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { void *p; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif + HANDLE_BLOCK_INTERRUPTIONS(); p = _safe_emalloc(nmemb, size, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); @@ -2213,9 +2193,6 @@ ZEND_API char* ZEND_FASTCALL _estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_ { size_t length; char *p; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif HANDLE_BLOCK_INTERRUPTIONS(); @@ -2233,9 +2210,6 @@ ZEND_API char* ZEND_FASTCALL _estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_ ZEND_API char* ZEND_FASTCALL _estrndup(const char *s, size_t length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { char *p; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif HANDLE_BLOCK_INTERRUPTIONS(); @@ -2254,9 +2228,6 @@ ZEND_API char* ZEND_FASTCALL _estrndup(const char *s, size_t length ZEND_FILE_LI ZEND_API char* ZEND_FASTCALL zend_strndup(const char *s, size_t length) { char *p; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif HANDLE_BLOCK_INTERRUPTIONS(); @@ -2314,6 +2285,7 @@ ZEND_API void shutdown_memory_manager(int silent, int full_shutdown TSRMLS_DC) static void alloc_globals_ctor(zend_alloc_globals *alloc_globals TSRMLS_DC) { + #if ZEND_MM_CUSTOM char *tmp = getenv("USE_ZEND_ALLOC"); @@ -2327,6 +2299,7 @@ static void alloc_globals_ctor(zend_alloc_globals *alloc_globals TSRMLS_DC) return; } #endif + ZEND_TSRMLS_CACHE_UPDATE; alloc_globals->mm_heap = zend_mm_init(); } diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c index 9604079a9e..97db764fbc 100644 --- a/Zend/zend_ast.c +++ b/Zend/zend_ast.c @@ -43,7 +43,6 @@ static inline size_t zend_ast_list_size(uint32_t children) { ZEND_API zend_ast *zend_ast_create_znode(znode *node) { zend_ast_znode *ast; - TSRMLS_FETCH(); ast = zend_ast_alloc(sizeof(zend_ast_znode) TSRMLS_CC); ast->kind = ZEND_AST_ZNODE; @@ -55,7 +54,6 @@ ZEND_API zend_ast *zend_ast_create_znode(znode *node) { ZEND_API zend_ast *zend_ast_create_zval_ex(zval *zv, zend_ast_attr attr) { zend_ast_zval *ast; - TSRMLS_FETCH(); ast = zend_ast_alloc(sizeof(zend_ast_zval) TSRMLS_CC); ast->kind = ZEND_AST_ZVAL; @@ -70,7 +68,6 @@ ZEND_API zend_ast *zend_ast_create_decl( zend_string *name, zend_ast *child0, zend_ast *child1, zend_ast *child2 ) { zend_ast_decl *ast; - TSRMLS_FETCH(); ast = zend_ast_alloc(sizeof(zend_ast_decl) TSRMLS_CC); ast->kind = kind; @@ -91,7 +88,6 @@ ZEND_API zend_ast *zend_ast_create_decl( static zend_ast *zend_ast_create_from_va_list(zend_ast_kind kind, zend_ast_attr attr, va_list va) { uint32_t i, children = kind >> ZEND_AST_NUM_CHILDREN_SHIFT; zend_ast *ast; - TSRMLS_FETCH(); ast = zend_ast_alloc(zend_ast_size(children) TSRMLS_CC); ast->kind = kind; @@ -140,7 +136,6 @@ ZEND_API zend_ast *zend_ast_create(zend_ast_kind kind, ...) { ZEND_API zend_ast *zend_ast_create_list(uint32_t init_children, zend_ast_kind kind, ...) { zend_ast *ast; zend_ast_list *list; - TSRMLS_FETCH(); ast = zend_ast_alloc(zend_ast_list_size(4) TSRMLS_CC); list = (zend_ast_list *) ast; @@ -169,7 +164,6 @@ static inline zend_bool is_power_of_two(uint32_t n) { ZEND_API zend_ast *zend_ast_list_add(zend_ast *ast, zend_ast *op) { zend_ast_list *list = zend_ast_get_list(ast); if (list->children >= 4 && is_power_of_two(list->children)) { - TSRMLS_FETCH(); list = zend_ast_realloc(list, zend_ast_list_size(list->children), zend_ast_list_size(list->children * 2) TSRMLS_CC); } diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index e242bac951..ded71481db 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -186,8 +186,6 @@ void zend_init_compiler_data_structures(TSRMLS_D) /* {{{ */ ZEND_API void file_handle_dtor(zend_file_handle *fh) /* {{{ */ { - TSRMLS_FETCH(); - zend_file_handle_dtor(fh TSRMLS_CC); } /* }}} */ @@ -3083,7 +3081,7 @@ static void zend_free_foreach_and_switch_variables(TSRMLS_D) /* {{{ */ opnum_start = get_next_op_number(CG(active_op_array)); #ifdef ZTS - zend_stack_apply_with_argument(&CG(loop_var_stack), ZEND_STACK_APPLY_TOPDOWN, (int (*)(void *element, void *)) generate_free_loop_var TSRMLS_CC); + zend_stack_apply_with_argument(&CG(loop_var_stack), ZEND_STACK_APPLY_TOPDOWN, (int (*)(void *element, void *)) generate_free_loop_var, NULL); #else zend_stack_apply(&CG(loop_var_stack), ZEND_STACK_APPLY_TOPDOWN, (int (*)(void *element)) generate_free_loop_var); #endif diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index cd2cc98b42..2ec9c8dbcc 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -206,8 +206,6 @@ static int zval_call_destructor(zval *zv TSRMLS_DC) /* {{{ */ static void zend_unclean_zval_ptr_dtor(zval *zv) /* {{{ */ { - TSRMLS_FETCH(); - if (Z_TYPE_P(zv) == IS_INDIRECT) { zv = Z_INDIRECT_P(zv); } @@ -485,7 +483,6 @@ ZEND_API zend_bool zend_is_executing(TSRMLS_D) /* {{{ */ ZEND_API void _zval_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC) /* {{{ */ { - TSRMLS_FETCH(); i_zval_ptr_dtor(zval_ptr ZEND_FILE_LINE_RELAY_CC TSRMLS_CC); } /* }}} */ @@ -1144,8 +1141,6 @@ ZEND_API int zend_eval_string_ex(char *str, zval *retval_ptr, char *string_name, ZEND_API void zend_timeout(int dummy) /* {{{ */ { - TSRMLS_FETCH(); - if (zend_on_timeout) { #ifdef ZEND_SIGNALS /* @@ -1186,7 +1181,9 @@ static LRESULT CALLBACK zend_timeout_WndProc(HWND hWnd, UINT message, WPARAM wPa break; } #endif - EG(timed_out) = 0; + /* XXX this won't work with TLS enabled, EG is on a different thread. + But nothing happened anyway, no timeout here. */ + /* EG(timed_out) = 0; */ } break; case WM_UNREGISTER_ZEND_TIMEOUT: @@ -1204,7 +1201,10 @@ static LRESULT CALLBACK zend_timeout_WndProc(HWND hWnd, UINT message, WPARAM wPa } #endif KillTimer(timeout_window, wParam); - EG(timed_out) = 1; + + /* XXX this won't work with TLS enabled, EG is on a different thread. + Maybe an ide were to throw the timeout window right from here. */ + /*EG(timed_out) = 1; */ } break; default: @@ -1278,8 +1278,6 @@ void zend_shutdown_timeout_thread(void) /* {{{ */ void zend_set_timeout(zend_long seconds, int reset_signals) /* {{{ */ { - TSRMLS_FETCH(); - EG(timeout_seconds) = seconds; #ifdef ZEND_WIN32 diff --git a/Zend/zend_gc.h b/Zend/zend_gc.h index 2eb8ea6ea3..d502f099aa 100644 --- a/Zend/zend_gc.h +++ b/Zend/zend_gc.h @@ -112,7 +112,7 @@ typedef struct _zend_gc_globals { BEGIN_EXTERN_C() ZEND_API extern int gc_globals_id; END_EXTERN_C() -#define GC_G(v) TSRMG(gc_globals_id, zend_gc_globals *, v) +#define GC_G(v) ZEND_TSRMG(gc_globals_id, zend_gc_globals *, v) #else #define GC_G(v) (gc_globals.v) extern ZEND_API zend_gc_globals gc_globals; diff --git a/Zend/zend_globals_macros.h b/Zend/zend_globals_macros.h index ac9b793775..7678b2b01d 100644 --- a/Zend/zend_globals_macros.h +++ b/Zend/zend_globals_macros.h @@ -31,18 +31,17 @@ BEGIN_EXTERN_C() /* Compiler */ #ifdef ZTS -# define CG(v) TSRMG(compiler_globals_id, zend_compiler_globals *, v) -int zendparse(void *compiler_globals); +# define CG(v) ZEND_TSRMG(compiler_globals_id, zend_compiler_globals *, v) #else # define CG(v) (compiler_globals.v) extern ZEND_API struct _zend_compiler_globals compiler_globals; -int zendparse(void); #endif +int zendparse(void); /* Executor */ #ifdef ZTS -# define EG(v) TSRMG(executor_globals_id, zend_executor_globals *, v) +# define EG(v) ZEND_TSRMG(executor_globals_id, zend_executor_globals *, v) #else # define EG(v) (executor_globals.v) extern ZEND_API zend_executor_globals executor_globals; @@ -50,7 +49,7 @@ extern ZEND_API zend_executor_globals executor_globals; /* Language Scanner */ #ifdef ZTS -# define LANG_SCNG(v) TSRMG(language_scanner_globals_id, zend_php_scanner_globals *, v) +# define LANG_SCNG(v) ZEND_TSRMG(language_scanner_globals_id, zend_php_scanner_globals *, v) extern ZEND_API ts_rsrc_id language_scanner_globals_id; #else # define LANG_SCNG(v) (language_scanner_globals.v) @@ -60,7 +59,7 @@ extern ZEND_API zend_php_scanner_globals language_scanner_globals; /* INI Scanner */ #ifdef ZTS -# define INI_SCNG(v) TSRMG(ini_scanner_globals_id, zend_ini_scanner_globals *, v) +# define INI_SCNG(v) ZEND_TSRMG(ini_scanner_globals_id, zend_ini_scanner_globals *, v) extern ZEND_API ts_rsrc_id ini_scanner_globals_id; #else # define INI_SCNG(v) (ini_scanner_globals.v) diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 6304737f04..797205775a 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -252,9 +252,6 @@ static zend_always_inline zval *_zend_hash_add_or_update_i(HashTable *ht, zend_s uint32_t nIndex; uint32_t idx; Bucket *p; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif IS_CONSISTENT(ht); @@ -407,9 +404,6 @@ static zend_always_inline zval *_zend_hash_index_add_or_update_i(HashTable *ht, uint32_t nIndex; uint32_t idx; Bucket *p; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif IS_CONSISTENT(ht); CHECK_INIT(ht, h < ht->nTableSize); @@ -547,9 +541,6 @@ ZEND_API zval *_zend_hash_next_index_insert_new(HashTable *ht, zval *pData ZEND_ static void zend_hash_do_resize(HashTable *ht) { -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif IS_CONSISTENT(ht); @@ -668,9 +659,6 @@ ZEND_API int zend_hash_del(HashTable *ht, zend_string *key) uint32_t idx; Bucket *p; Bucket *prev = NULL; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif IS_CONSISTENT(ht); @@ -707,9 +695,6 @@ ZEND_API int zend_hash_del_ind(HashTable *ht, zend_string *key) uint32_t idx; Bucket *p; Bucket *prev = NULL; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif IS_CONSISTENT(ht); @@ -759,9 +744,6 @@ ZEND_API int zend_hash_str_del(HashTable *ht, const char *str, size_t len) uint32_t idx; Bucket *p; Bucket *prev = NULL; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif IS_CONSISTENT(ht); @@ -810,9 +792,6 @@ ZEND_API int zend_hash_str_del_ind(HashTable *ht, const char *str, size_t len) uint32_t idx; Bucket *p; Bucket *prev = NULL; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif IS_CONSISTENT(ht); @@ -843,9 +822,6 @@ ZEND_API int zend_hash_index_del(HashTable *ht, zend_ulong h) uint32_t idx; Bucket *p; Bucket *prev = NULL; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif IS_CONSISTENT(ht); @@ -961,10 +937,6 @@ ZEND_API void zend_hash_clean(HashTable *ht) */ static void zend_hash_apply_deleter(HashTable *ht, uint32_t idx, Bucket *p) { -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif - HANDLE_BLOCK_INTERRUPTIONS(); _zend_hash_del_el(ht, idx, p); HANDLE_UNBLOCK_INTERRUPTIONS(); diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index f240ed7159..e7f075d457 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -551,7 +551,6 @@ static zend_bool do_inherit_method_check(HashTable *child_function_table, zend_f { uint32_t parent_flags = parent->common.fn_flags; zend_function *child; - TSRMLS_FETCH(); if ((child = zend_hash_find_ptr(child_function_table, key)) == NULL) { if (parent_flags & (ZEND_ACC_ABSTRACT)) { diff --git a/Zend/zend_ini.c b/Zend/zend_ini.c index e60e58d2aa..1c827bbe4c 100644 --- a/Zend/zend_ini.c +++ b/Zend/zend_ini.c @@ -292,8 +292,6 @@ ZEND_API void zend_ini_refresh_caches(int stage TSRMLS_DC) /* {{{ */ ZEND_API int zend_alter_ini_entry(zend_string *name, zend_string *new_value, int modify_type, int stage) /* {{{ */ { - TSRMLS_FETCH(); - return zend_alter_ini_entry_ex(name, new_value, modify_type, stage, 0 TSRMLS_CC); } /* }}} */ @@ -302,7 +300,6 @@ ZEND_API int zend_alter_ini_entry_chars(zend_string *name, const char *value, si { int ret; zend_string *new_value; - TSRMLS_FETCH(); new_value = zend_string_init(value, value_length, stage != ZEND_INI_STAGE_RUNTIME); ret = zend_alter_ini_entry_ex(name, new_value, modify_type, stage, 0 TSRMLS_CC); @@ -378,7 +375,6 @@ ZEND_API int zend_alter_ini_entry_ex(zend_string *name, zend_string *new_value, ZEND_API int zend_restore_ini_entry(zend_string *name, int stage) /* {{{ */ { zend_ini_entry *ini_entry; - TSRMLS_FETCH(); if ((ini_entry = zend_hash_find_ptr(EG(ini_directives), name)) == NULL || (stage == ZEND_INI_STAGE_RUNTIME && (ini_entry->modifiable & ZEND_INI_USER) == 0)) { @@ -418,7 +414,6 @@ ZEND_API int zend_ini_register_displayer(char *name, uint name_length, void (*di ZEND_API zend_long zend_ini_long(char *name, uint name_length, int orig) /* {{{ */ { zend_ini_entry *ini_entry; - TSRMLS_FETCH(); ini_entry = zend_hash_str_find_ptr(EG(ini_directives), name, name_length); if (ini_entry) { @@ -436,7 +431,6 @@ ZEND_API zend_long zend_ini_long(char *name, uint name_length, int orig) /* {{{ ZEND_API double zend_ini_double(char *name, uint name_length, int orig) /* {{{ */ { zend_ini_entry *ini_entry; - TSRMLS_FETCH(); ini_entry = zend_hash_str_find_ptr(EG(ini_directives), name, name_length); if (ini_entry) { @@ -454,7 +448,6 @@ ZEND_API double zend_ini_double(char *name, uint name_length, int orig) /* {{{ * ZEND_API char *zend_ini_string_ex(char *name, uint name_length, int orig, zend_bool *exists) /* {{{ */ { zend_ini_entry *ini_entry; - TSRMLS_FETCH(); ini_entry = zend_hash_str_find_ptr(EG(ini_directives), name, name_length); if (ini_entry) { diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y index e343fcd92a..3ff392632c 100644 --- a/Zend/zend_ini_parser.y +++ b/Zend/zend_ini_parser.y @@ -32,13 +32,7 @@ #define YYERROR_VERBOSE #define YYSTYPE zval -#ifdef ZTS -#define YYPARSE_PARAM tsrm_ls -#define YYLEX_PARAM tsrm_ls -int ini_parse(void *arg); -#else int ini_parse(void); -#endif #define ZEND_INI_PARSER_CB (CG(ini_parser_param))->ini_parser_cb #define ZEND_INI_PARSER_ARG (CG(ini_parser_param))->arg @@ -164,7 +158,6 @@ static void ini_error(const char *msg) char *error_buf; int error_buf_len; char *currently_parsed_filename; - TSRMLS_FETCH(); currently_parsed_filename = zend_ini_scanner_get_filename(TSRMLS_C); if (currently_parsed_filename) { diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 97fc4de546..83ece22e78 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -49,10 +49,6 @@ static YYSIZE_T zend_yytnamerr(char*, const char*); %expect 2 %code requires { -#ifdef ZTS -# define YYPARSE_PARAM tsrm_ls -# define YYLEX_PARAM tsrm_ls -#endif } %destructor { zend_ast_destroy($$); } <ast> @@ -1170,7 +1166,6 @@ static YYSIZE_T zend_yytnamerr(char *yyres, const char *yystr) return yystrlen(yystr); } { - TSRMLS_FETCH(); if (CG(parse_error) == 0) { char buffer[120]; const unsigned char *end, *str, *tok1 = NULL, *tok2 = NULL; diff --git a/Zend/zend_list.c b/Zend/zend_list.c index d8141f8664..ab05f8c7ac 100644 --- a/Zend/zend_list.c +++ b/Zend/zend_list.c @@ -165,8 +165,6 @@ void list_entry_destructor(zval *zv) zend_resource *res = Z_RES_P(zv); if (res->type >= 0) { - TSRMLS_FETCH(); - zend_resource_dtor(res TSRMLS_CC); } efree_size(res, sizeof(zend_resource)); @@ -178,7 +176,6 @@ void plist_entry_destructor(zval *zv) if (res->type >= 0) { zend_rsrc_list_dtors_entry *ld; - TSRMLS_FETCH(); ld = zend_hash_index_find_ptr(&list_destructors, res->type); if (ld) { diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h index 0cd9ca4d16..9b1717d5df 100644 --- a/Zend/zend_modules.h +++ b/Zend/zend_modules.h @@ -33,7 +33,7 @@ #define ZEND_MODULE_INFO_FUNC_ARGS zend_module_entry *zend_module TSRMLS_DC #define ZEND_MODULE_INFO_FUNC_ARGS_PASSTHRU zend_module TSRMLS_CC -#define ZEND_MODULE_API_NO 20140815 +#define ZEND_MODULE_API_NO 20141001 #ifdef ZTS #define USING_ZTS 1 #else diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 5902abd4c5..965561311d 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -112,7 +112,6 @@ ZEND_API void destroy_zend_function(zend_function *function TSRMLS_DC) ZEND_API void zend_function_dtor(zval *zv) { zend_function *function = Z_PTR_P(zv); - TSRMLS_FETCH(); if (function->type == ZEND_USER_FUNCTION) { ZEND_ASSERT(function->common.function_name); diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index b0a0e7519e..963c261d42 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -371,7 +371,6 @@ ZEND_API void convert_to_long_base(zval *op, int base) /* {{{ */ case IS_OBJECT: { zval dst; - TSRMLS_FETCH(); convert_object_to_type(op, &dst, IS_LONG, convert_to_long); zval_dtor(op); @@ -429,7 +428,6 @@ ZEND_API void convert_to_double(zval *op) /* {{{ */ case IS_OBJECT: { zval dst; - TSRMLS_FETCH(); convert_object_to_type(op, &dst, IS_DOUBLE, convert_to_double); zval_dtor(op); @@ -453,7 +451,6 @@ ZEND_API void convert_to_null(zval *op) /* {{{ */ if (Z_TYPE_P(op) == IS_OBJECT) { if (Z_OBJ_HT_P(op)->cast_object) { zval org; - TSRMLS_FETCH(); ZVAL_COPY_VALUE(&org, op); if (Z_OBJ_HT_P(op)->cast_object(&org, op, IS_NULL TSRMLS_CC) == SUCCESS) { @@ -514,7 +511,6 @@ ZEND_API void convert_to_boolean(zval *op) /* {{{ */ case IS_OBJECT: { zval dst; - TSRMLS_FETCH(); convert_object_to_type(op, &dst, _IS_BOOL, convert_to_boolean); zval_dtor(op); @@ -543,7 +539,6 @@ ZEND_API void _convert_to_string(zval *op ZEND_FILE_LINE_DC) /* {{{ */ case IS_UNDEF: case IS_NULL: case IS_FALSE: { - TSRMLS_FETCH(); ZVAL_EMPTY_STRING(op); break; } @@ -565,7 +560,6 @@ ZEND_API void _convert_to_string(zval *op ZEND_FILE_LINE_DC) /* {{{ */ case IS_DOUBLE: { zend_string *str; double dval = Z_DVAL_P(op); - TSRMLS_FETCH(); str = zend_strpprintf(0, "%.*G", (int) EG(precision), dval); /* %G already handles removing trailing zeros from the fractional part, yay */ @@ -579,7 +573,6 @@ ZEND_API void _convert_to_string(zval *op ZEND_FILE_LINE_DC) /* {{{ */ break; case IS_OBJECT: { zval dst; - TSRMLS_FETCH(); convert_object_to_type(op, &dst, IS_STRING, convert_to_string); @@ -612,8 +605,6 @@ static void convert_scalar_to_array(zval *op TSRMLS_DC) /* {{{ */ ZEND_API void convert_to_array(zval *op) /* {{{ */ { - TSRMLS_FETCH(); - switch (Z_TYPE_P(op)) { case IS_ARRAY: break; @@ -660,8 +651,6 @@ ZEND_API void convert_to_array(zval *op) /* {{{ */ ZEND_API void convert_to_object(zval *op) /* {{{ */ { - TSRMLS_FETCH(); - switch (Z_TYPE_P(op)) { case IS_ARRAY: { @@ -2164,7 +2153,6 @@ try_again: /* proxy object */ zval rv; zval *val; - TSRMLS_FETCH(); val = Z_OBJ_HANDLER_P(op1, get)(op1, &rv TSRMLS_CC); Z_ADDREF_P(val); @@ -2174,7 +2162,6 @@ try_again: } else if (Z_OBJ_HANDLER_P(op1, do_operation)) { zval op2; int res; - TSRMLS_FETCH(); ZVAL_LONG(&op2, 1); res = Z_OBJ_HANDLER_P(op1, do_operation)(ZEND_ADD, op1, op1, &op2 TSRMLS_CC); @@ -2239,7 +2226,6 @@ try_again: /* proxy object */ zval rv; zval *val; - TSRMLS_FETCH(); val = Z_OBJ_HANDLER_P(op1, get)(op1, &rv TSRMLS_CC); Z_ADDREF_P(val); @@ -2249,7 +2235,6 @@ try_again: } else if (Z_OBJ_HANDLER_P(op1, do_operation)) { zval op2; int res; - TSRMLS_FETCH(); ZVAL_LONG(&op2, 1); res = Z_OBJ_HANDLER_P(op1, do_operation)(ZEND_SUB, op1, op1, &op2 TSRMLS_CC); @@ -2558,7 +2543,6 @@ ZEND_API void zend_compare_objects(zval *result, zval *o1, zval *o2 TSRMLS_DC) / ZEND_API void zend_locale_sprintf_double(zval *op ZEND_FILE_LINE_DC) /* {{{ */ { zend_string *str; - TSRMLS_FETCH(); str = zend_strpprintf(0, "%.*G", (int) EG(precision), (double)Z_DVAL_P(op)); ZVAL_NEW_STR(op, str); diff --git a/Zend/zend_signal.c b/Zend/zend_signal.c index 6105fb1119..cf4c3179d1 100644 --- a/Zend/zend_signal.c +++ b/Zend/zend_signal.c @@ -74,7 +74,6 @@ void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context) { int errno_save = errno; zend_signal_queue_t *queue, *qtmp; - TSRMLS_FETCH(); if (SIGG(active)) { if (SIGG(depth) == 0) { /* try to handle signal */ diff --git a/Zend/zend_signal.h b/Zend/zend_signal.h index 02d6495437..8e99a50bbb 100644 --- a/Zend/zend_signal.h +++ b/Zend/zend_signal.h @@ -65,7 +65,7 @@ typedef struct _zend_signal_globals_t { } zend_signal_globals_t; #ifdef ZTS -# define SIGG(v) TSRMG(zend_signal_globals_id, zend_signal_globals_t *, v) +# define SIGG(v) ZEND_TSRMG(zend_signal_globals_id, zend_signal_globals_t *, v) BEGIN_EXTERN_C() ZEND_API extern int zend_signal_globals_id; END_EXTERN_C() diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c index 3e68a38487..f200f00e65 100644 --- a/Zend/zend_variables.c +++ b/Zend/zend_variables.c @@ -39,7 +39,6 @@ ZEND_API void _zval_dtor_func(zend_refcounted *p ZEND_FILE_LINE_DC) } case IS_ARRAY: { zend_array *arr = (zend_array*)p; - TSRMLS_FETCH(); if (arr != &EG(symbol_table)) { /* break possible cycles */ @@ -59,14 +58,12 @@ ZEND_API void _zval_dtor_func(zend_refcounted *p ZEND_FILE_LINE_DC) } case IS_OBJECT: { zend_object *obj = (zend_object*)p; - TSRMLS_FETCH(); OBJ_RELEASE(obj); break; } case IS_RESOURCE: { zend_resource *res = (zend_resource*)p; - TSRMLS_FETCH(); if (--GC_REFCOUNT(res) == 0) { /* destroy resource */ @@ -99,7 +96,6 @@ ZEND_API void _zval_dtor_func_for_ptr(zend_refcounted *p ZEND_FILE_LINE_DC) } case IS_ARRAY: { zend_array *arr = (zend_array*)p; - TSRMLS_FETCH(); if (arr != &EG(symbol_table)) { /* break possible cycles */ @@ -119,14 +115,12 @@ ZEND_API void _zval_dtor_func_for_ptr(zend_refcounted *p ZEND_FILE_LINE_DC) } case IS_OBJECT: { zend_object *obj = (zend_object*)p; - TSRMLS_FETCH(); zend_objects_store_del(obj TSRMLS_CC); break; } case IS_RESOURCE: { zend_resource *res = (zend_resource*)p; - TSRMLS_FETCH(); /* destroy resource */ zend_list_free(res); @@ -238,7 +232,6 @@ ZEND_API void _zval_copy_ctor_func(zval *zvalue ZEND_FILE_LINE_DC) break; case IS_ARRAY: { HashTable *ht; - TSRMLS_FETCH(); if (Z_ARR_P(zvalue) == &EG(symbol_table)) { return; /* do nothing */ diff --git a/Zend/zend_virtual_cwd.h b/Zend/zend_virtual_cwd.h index 96ac6faa30..ec2875f068 100644 --- a/Zend/zend_virtual_cwd.h +++ b/Zend/zend_virtual_cwd.h @@ -237,7 +237,7 @@ typedef struct _virtual_cwd_globals { #ifdef ZTS extern ts_rsrc_id cwd_globals_id; -# define CWDG(v) TSRMG(cwd_globals_id, virtual_cwd_globals *, v) +# define CWDG(v) ZEND_TSRMG(cwd_globals_id, virtual_cwd_globals *, v) #else extern virtual_cwd_globals cwd_globals; # define CWDG(v) (cwd_globals.v) diff --git a/acinclude.m4 b/acinclude.m4 index 678296aac7..a4d4d509e0 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -2736,7 +2736,7 @@ AC_DEFUN([PHP_CHECK_CONFIGURE_OPTIONS],[ enable-libtool-lock | with-pic | with-tags | enable-shared | enable-static | enable-fast-install | with-gnu-ld[)];; # Allow certain TSRM options - with-tsrm-pth | with-tsrm-st | with-tsrm-pthreads[)];; + with-tsrm-pth | with-tsrm-st | with-tsrm-pthreads [)];; # Allow certain Zend options with-zend-vm | enable-maintainer-zts | enable-inline-optimization[)];; diff --git a/configure.in b/configure.in index f947d2f9de..5366a9211d 100644 --- a/configure.in +++ b/configure.in @@ -1491,7 +1491,8 @@ PHP_ADD_SOURCES(Zend, \ zend_iterators.c zend_interfaces.c zend_exceptions.c zend_strtod.c zend_gc.c \ zend_closures.c zend_float.c zend_string.c zend_signal.c zend_generators.c \ zend_virtual_cwd.c zend_ast.c zend_objects.c zend_object_handlers.c zend_objects_API.c \ - zend_default_classes.c zend_inheritance.c) + zend_default_classes.c zend_inheritance.c, \ + -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) dnl Selectively disable optimization due to high RAM usage during dnl compiling the executor. diff --git a/ext/com_dotnet/com_persist.c b/ext/com_dotnet/com_persist.c index eb80e760c8..d47fbad5df 100644 --- a/ext/com_dotnet/com_persist.c +++ b/ext/com_dotnet/com_persist.c @@ -55,7 +55,6 @@ static void istream_dtor(zend_resource *rsrc TSRMLS_DC) #define FETCH_STM() \ php_istream *stm = (php_istream*)This; \ - TSRMLS_FETCH(); \ if (GetCurrentThreadId() != stm->engine_thread) \ return RPC_E_WRONG_THREAD; diff --git a/ext/com_dotnet/com_wrapper.c b/ext/com_dotnet/com_wrapper.c index 6112dfb4bf..9e14c99e10 100644 --- a/ext/com_dotnet/com_wrapper.c +++ b/ext/com_dotnet/com_wrapper.c @@ -88,7 +88,6 @@ static inline void trace(char *fmt, ...) #define FETCH_DISP(methname) \ php_dispatchex *disp = (php_dispatchex*)This; \ - TSRMLS_FETCH(); \ if (COMG(rshutdown_started)) { \ trace(" PHP Object:%p (name:unknown) %s\n", Z_OBJ(disp->object), methname); \ } else { \ diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 6caaa5258b..5c4a8800a3 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -1279,7 +1279,6 @@ static size_t curl_write(char *data, size_t size, size_t nmemb, void *ctx) php_curl *ch = (php_curl *) ctx; php_curl_write *t = ch->handlers->write; size_t length = size * nmemb; - TSRMLS_FETCH_FROM_CTX(ch->thread_ctx); #if PHP_CURL_DEBUG fprintf(stderr, "curl_write() called\n"); @@ -1354,7 +1353,6 @@ static int curl_fnmatch(void *ctx, const char *pattern, const char *string) zval retval; int error; zend_fcall_info fci; - TSRMLS_FETCH_FROM_CTX(ch->thread_ctx); ZVAL_RES(&argv[0], ch->res); Z_ADDREF(argv[0]); @@ -1412,7 +1410,6 @@ static size_t curl_progress(void *clientp, double dltotal, double dlnow, double zval retval; int error; zend_fcall_info fci; - TSRMLS_FETCH_FROM_CTX(ch->thread_ctx); ZVAL_RES(&argv[0], ch->res); Z_ADDREF(argv[0]); @@ -1475,7 +1472,6 @@ static size_t curl_read(char *data, size_t size, size_t nmemb, void *ctx) zval retval; int error; zend_fcall_info fci; - TSRMLS_FETCH_FROM_CTX(ch->thread_ctx); ZVAL_RES(&argv[0], ch->res); Z_ADDREF(argv[0]); @@ -1527,7 +1523,6 @@ static size_t curl_write_header(char *data, size_t size, size_t nmemb, void *ctx php_curl *ch = (php_curl *) ctx; php_curl_write *t = ch->handlers->write_header; size_t length = size * nmemb; - TSRMLS_FETCH_FROM_CTX(ch->thread_ctx); switch (t->method) { case PHP_CURL_STDOUT: @@ -1617,7 +1612,6 @@ static size_t curl_passwd(void *ctx, char *prompt, char *buf, int buflen) zval retval; int error; int ret = -1; - TSRMLS_FETCH_FROM_CTX(ch->thread_ctx); ZVAL_RES(&argv[0], ch->res); Z_ADDREF(argv[0]); diff --git a/ext/curl/multi.c b/ext/curl/multi.c index d9e6df2c98..e00f459902 100644 --- a/ext/curl/multi.c +++ b/ext/curl/multi.c @@ -100,7 +100,6 @@ void _php_curl_multi_cleanup_list(void *data) /* {{{ */ { zval *z_ch = (zval *)data; php_curl *ch; - TSRMLS_FETCH(); if (!z_ch) { return; diff --git a/ext/date/php_date.c b/ext/date/php_date.c index f2ced7bd59..580684c579 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -923,7 +923,6 @@ static timelib_tzinfo *php_date_parse_tzfile(char *formal_tzname, const timelib_ timelib_tzinfo *php_date_parse_tzfile_wrapper(char *formal_tzname, const timelib_tzdb *tzdb) { - TSRMLS_FETCH(); return php_date_parse_tzfile(formal_tzname, tzdb TSRMLS_CC); } /* }}} */ diff --git a/ext/dba/dba_db3.c b/ext/dba/dba_db3.c index 3f31222d9e..cb3520f874 100644 --- a/ext/dba/dba_db3.c +++ b/ext/dba/dba_db3.c @@ -37,8 +37,6 @@ static void php_dba_db3_errcall_fcn(const char *errpfx, char *msg) { - TSRMLS_FETCH(); - php_error_docref(NULL TSRMLS_CC, E_NOTICE, "%s%s", errpfx?errpfx:"", msg); } diff --git a/ext/dba/dba_db4.c b/ext/dba/dba_db4.c index a9752a7bf6..eeea2db3a5 100644 --- a/ext/dba/dba_db4.c +++ b/ext/dba/dba_db4.c @@ -42,8 +42,6 @@ static void php_dba_db4_errcall_fcn( #endif const char *errpfx, const char *msg) { - TSRMLS_FETCH(); - #if (DB_VERSION_MAJOR == 5 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR == 8)) /* Bug 51086, Berkeley DB 4.8.26 */ /* This code suppresses a BDB 4.8+ error message, thus keeping PHP test compatibility */ diff --git a/ext/dom/xpath.c b/ext/dom/xpath.c index 336365e342..fddf7da423 100644 --- a/ext/dom/xpath.c +++ b/ext/dom/xpath.c @@ -82,8 +82,6 @@ static void dom_xpath_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, char *str; zend_string *callable = NULL; dom_xpath_object *intern; - - TSRMLS_FETCH(); if (! zend_is_executing(TSRMLS_C)) { xmlGenericError(xmlGenericErrorContext, diff --git a/ext/fileinfo/libmagic/apprentice.c b/ext/fileinfo/libmagic/apprentice.c index c1dc5aa1fa..732ed8babb 100644 --- a/ext/fileinfo/libmagic/apprentice.c +++ b/ext/fileinfo/libmagic/apprentice.c @@ -960,8 +960,6 @@ load_1(struct magic_set *ms, int action, const char *fn, int *errs, php_stream *stream; - TSRMLS_FETCH(); - ms->file = fn; stream = php_stream_open_wrapper((char *)fn, "rb", REPORT_ERRORS, NULL); @@ -1151,8 +1149,6 @@ apprentice_load(struct magic_set *ms, const char *fn, int action) php_stream *dir; php_stream_dirent d; - TSRMLS_FETCH(); - memset(mset, 0, sizeof(mset)); ms->flags |= MAGIC_CHECK; /* Enable checks for parsed files */ @@ -2607,9 +2603,6 @@ apprentice_map(struct magic_set *ms, const char *fn) php_stream *stream = NULL; php_stream_statbuf st; - - TSRMLS_FETCH(); - if ((map = CAST(struct magic_map *, ecalloc(1, sizeof(*map)))) == NULL) { file_oomem(ms, sizeof(*map)); efree(map); @@ -2761,8 +2754,6 @@ apprentice_compile(struct magic_set *ms, struct magic_map *map, const char *fn) uint32_t i; php_stream *stream; - TSRMLS_FETCH(); - dbname = mkdbname(ms, fn, 0); if (dbname == NULL) @@ -2820,7 +2811,6 @@ mkdbname(struct magic_set *ms, const char *fn, int strip) { const char *p, *q; char *buf; - TSRMLS_FETCH(); if (strip) { if ((p = strrchr(fn, '/')) != NULL) diff --git a/ext/fileinfo/libmagic/fsmagic.c b/ext/fileinfo/libmagic/fsmagic.c index a7b420ff5d..0f6f4acbdf 100644 --- a/ext/fileinfo/libmagic/fsmagic.c +++ b/ext/fileinfo/libmagic/fsmagic.c @@ -94,7 +94,6 @@ file_fsmagic(struct magic_set *ms, const char *fn, zend_stat_t *sb, php_stream * { int ret, did = 0; int mime = ms->flags & MAGIC_MIME; - TSRMLS_FETCH(); if (ms->flags & MAGIC_APPLE) return 0; diff --git a/ext/fileinfo/libmagic/funcs.c b/ext/fileinfo/libmagic/funcs.c index c7d9a7e4f1..252cc34589 100644 --- a/ext/fileinfo/libmagic/funcs.c +++ b/ext/fileinfo/libmagic/funcs.c @@ -221,7 +221,7 @@ file_buffer(struct magic_set *ms, php_stream *stream, const char *inname, const /* Check if we have a CDF file */ if ((ms->flags & MAGIC_NO_CHECK_CDF) == 0) { php_socket_t fd; - TSRMLS_FETCH(); + if (stream && SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD, (void **)&fd, 0)) { if ((m = file_trycdf(ms, fd, ubuf, nb)) != 0) { if ((ms->flags & MAGIC_DEBUG) != 0) @@ -445,7 +445,6 @@ file_replace(struct magic_set *ms, const char *pat, const char *rep) zend_string *res; zval repl; int rep_cnt = 0; - TSRMLS_FETCH(); (void)setlocale(LC_CTYPE, "C"); diff --git a/ext/fileinfo/libmagic/magic.c b/ext/fileinfo/libmagic/magic.c index 7f5cff6a7b..5aeb0084cb 100644 --- a/ext/fileinfo/libmagic/magic.c +++ b/ext/fileinfo/libmagic/magic.c @@ -353,7 +353,6 @@ file_or_stream(struct magic_set *ms, const char *inname, php_stream *stream) zend_stat_t sb; ssize_t nbytes = 0; /* number of bytes read from a datafile */ int no_in_stream = 0; - TSRMLS_FETCH(); if (!inname && !stream) { return NULL; diff --git a/ext/fileinfo/libmagic/print.c b/ext/fileinfo/libmagic/print.c index eb4e6e8ce4..f21ca9c711 100644 --- a/ext/fileinfo/libmagic/print.c +++ b/ext/fileinfo/libmagic/print.c @@ -60,7 +60,6 @@ file_magwarn(struct magic_set *ms, const char *f, ...) { va_list va; char *expanded_format; - TSRMLS_FETCH(); va_start(va, f); if (vasprintf(&expanded_format, f, va)); /* silence */ diff --git a/ext/fileinfo/libmagic/softmagic.c b/ext/fileinfo/libmagic/softmagic.c index e626929c9e..40f6a52b83 100644 --- a/ext/fileinfo/libmagic/softmagic.c +++ b/ext/fileinfo/libmagic/softmagic.c @@ -360,7 +360,6 @@ check_fmt(struct magic_set *ms, struct magic *m) int re_options, rv = -1; pcre_extra *re_extra; zend_string *pattern; - TSRMLS_FETCH(); if (strchr(m->desc, '%') == NULL) return 0; @@ -2079,7 +2078,6 @@ magiccheck(struct magic_set *ms, struct magic *m) zval pattern; int options = 0; pcre_cache_entry *pce; - TSRMLS_FETCH(); options |= PCRE_MULTILINE; diff --git a/ext/ftp/ftp.c b/ext/ftp/ftp.c index a5341080b8..69afa559ad 100644 --- a/ext/ftp/ftp.c +++ b/ext/ftp/ftp.c @@ -179,7 +179,6 @@ ftp_close(ftpbuf_t *ftp) data_close(ftp, ftp->data); } if (ftp->stream && ftp->closestream) { - TSRMLS_FETCH(); php_stream_close(ftp->stream); } if (ftp->fd != -1) { diff --git a/ext/gd/gd.c b/ext/gd/gd.c index 54d0254c01..c08f9d4271 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -1097,8 +1097,6 @@ static void php_free_gd_font(zend_resource *rsrc TSRMLS_DC) */ void php_gd_error_method(int type, const char *format, va_list args) { - TSRMLS_FETCH(); - php_verror(NULL, "", type, format, args TSRMLS_CC); } /* }}} */ @@ -4357,7 +4355,6 @@ static void _php_image_bw_convert(gdImagePtr im_org, gdIOCtx *out, int threshold int dest_height = gdImageSY(im_org); int dest_width = gdImageSX(im_org); int x, y; - TSRMLS_FETCH(); im_dest = gdImageCreate(dest_width, dest_height); if (im_dest == NULL) { diff --git a/ext/gd/gd_compat.c b/ext/gd/gd_compat.c index dc6a95ae11..ff21034ae7 100644 --- a/ext/gd/gd_compat.c +++ b/ext/gd/gd_compat.c @@ -48,8 +48,6 @@ const char * gdPngGetVersionString() int overflow2(int a, int b) { - TSRMLS_FETCH(); - if(a <= 0 || b <= 0) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "gd warning: one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully\n"); return 1; diff --git a/ext/gd/gd_ctx.c b/ext/gd/gd_ctx.c index 0b79cb6f0d..73f4848eeb 100644 --- a/ext/gd/gd_ctx.c +++ b/ext/gd/gd_ctx.c @@ -29,13 +29,11 @@ static void _php_image_output_putc(struct gdIOCtx *ctx, int c) /* {{{ */ * big endian architectures: */ unsigned char ch = (unsigned char) c; - TSRMLS_FETCH(); php_write(&ch, 1 TSRMLS_CC); } /* }}} */ static int _php_image_output_putbuf(struct gdIOCtx *ctx, const void* buf, int l) /* {{{ */ { - TSRMLS_FETCH(); return php_write((void *)buf, l TSRMLS_CC); } /* }}} */ @@ -49,21 +47,19 @@ static void _php_image_output_ctxfree(struct gdIOCtx *ctx) /* {{{ */ static void _php_image_stream_putc(struct gdIOCtx *ctx, int c) /* {{{ */ { char ch = (char) c; php_stream * stream = (php_stream *)ctx->data; - TSRMLS_FETCH(); + php_stream_write(stream, &ch, 1); } /* }}} */ static int _php_image_stream_putbuf(struct gdIOCtx *ctx, const void* buf, int l) /* {{{ */ { php_stream * stream = (php_stream *)ctx->data; - TSRMLS_FETCH(); + return php_stream_write(stream, (void *)buf, l); } /* }}} */ static void _php_image_stream_ctxfree(struct gdIOCtx *ctx) /* {{{ */ { - TSRMLS_FETCH(); - if(ctx->data) { php_stream_close((php_stream *) ctx->data); ctx->data = NULL; diff --git a/ext/gd/libgd/gd.c b/ext/gd/libgd/gd.c index 54890bc177..6c8db37008 100644 --- a/ext/gd/libgd/gd.c +++ b/ext/gd/libgd/gd.c @@ -102,8 +102,6 @@ void php_gd_error_ex(int type, const char *format, ...) { va_list args; - TSRMLS_FETCH(); - va_start(args, format); php_verror(NULL, "", type, format, args TSRMLS_CC); va_end(args); @@ -113,8 +111,6 @@ void php_gd_error(const char *format, ...) { va_list args; - TSRMLS_FETCH(); - va_start(args, format); php_verror(NULL, "", E_WARNING, format, args TSRMLS_CC); va_end(args); diff --git a/ext/gd/libgd/gdft.c b/ext/gd/libgd/gdft.c index 4148cf47bb..7737fb1801 100644 --- a/ext/gd/libgd/gdft.c +++ b/ext/gd/libgd/gdft.c @@ -412,7 +412,6 @@ static void *fontFetch (char **error, void *key) for (dir = gd_strtok_r (path, PATHSEPARATOR, &strtok_ptr_path); dir; dir = gd_strtok_r (0, PATHSEPARATOR, &strtok_ptr_path)) { if (!strcmp(dir, ".")) { - TSRMLS_FETCH(); #if HAVE_GETCWD dir = VCWD_GETCWD(cur_dir, MAXPATHLEN); #elif HAVE_GETWD diff --git a/ext/gd/libgd/gdkanji.c b/ext/gd/libgd/gdkanji.c index 37f3bd10a0..84096cd3f8 100644 --- a/ext/gd/libgd/gdkanji.c +++ b/ext/gd/libgd/gdkanji.c @@ -74,7 +74,6 @@ error (const char *format,...) { va_list args; char *tmp; - TSRMLS_FETCH(); va_start(args, format); vspprintf(&tmp, 0, format, args); diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c index d425f6cf1e..17f9ba5aaa 100644 --- a/ext/iconv/iconv.c +++ b/ext/iconv/iconv.c @@ -395,7 +395,6 @@ static int php_iconv_output_handler(void **nothing, php_output_context *output_c { char *s, *content_type, *mimetype = NULL; int output_status, mimetype_len = 0; - PHP_OUTPUT_TSRMLS(output_context); if (output_context->op & PHP_OUTPUT_HANDLER_START) { output_status = php_output_get_status(TSRMLS_C); diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 8dc56c5223..460303d0ea 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -760,7 +760,6 @@ void mail_free_messagelist(MESSAGELIST **msglist, MESSAGELIST **tail) void mail_getquota(MAILSTREAM *stream, char *qroot, QUOTALIST *qlist) { zval t_map, *return_value; - TSRMLS_FETCH(); return_value = *IMAPG(quota_return); @@ -788,8 +787,6 @@ void mail_getquota(MAILSTREAM *stream, char *qroot, QUOTALIST *qlist) */ void mail_getacl(MAILSTREAM *stream, char *mailbox, ACLLIST *alist) { - TSRMLS_FETCH(); - /* walk through the ACLLIST */ for(; alist; alist = alist->next) { add_assoc_stringl(IMAPG(imap_acl_list), alist->identifier, alist->rights, strlen(alist->rights)); @@ -4764,8 +4761,6 @@ PHP_FUNCTION(imap_timeout) #define GETS_FETCH_SIZE 8196LU static char *php_mail_gets(readfn_t f, void *stream, unsigned long size, GETS_DATA *md) /* {{{ */ { - TSRMLS_FETCH(); - /* write to the gets stream if it is set, otherwise forward to c-clients gets */ if (IMAPG(gets_stream)) { @@ -4811,7 +4806,6 @@ static char *php_mail_gets(readfn_t f, void *stream, unsigned long size, GETS_DA PHP_IMAP_EXPORT void mm_searched(MAILSTREAM *stream, unsigned long number) { MESSAGELIST *cur = NIL; - TSRMLS_FETCH(); if (IMAPG(imap_messages) == NIL) { IMAPG(imap_messages) = mail_newmessagelist(); @@ -4844,7 +4838,6 @@ PHP_IMAP_EXPORT void mm_flags(MAILSTREAM *stream, unsigned long number) PHP_IMAP_EXPORT void mm_notify(MAILSTREAM *stream, char *str, long errflg) { STRINGLIST *cur = NIL; - TSRMLS_FETCH(); if (strncmp(str, "[ALERT] ", 8) == 0) { if (IMAPG(imap_alertstack) == NIL) { @@ -4868,7 +4861,6 @@ PHP_IMAP_EXPORT void mm_list(MAILSTREAM *stream, DTYPE delimiter, char *mailbox, { STRINGLIST *cur=NIL; FOBJECTLIST *ocur=NIL; - TSRMLS_FETCH(); if (IMAPG(folderlist_style) == FLIST_OBJECT) { /* build up a the new array of objects */ @@ -4915,7 +4907,6 @@ PHP_IMAP_EXPORT void mm_lsub(MAILSTREAM *stream, DTYPE delimiter, char *mailbox, { STRINGLIST *cur=NIL; FOBJECTLIST *ocur=NIL; - TSRMLS_FETCH(); if (IMAPG(folderlist_style) == FLIST_OBJECT) { /* build the array of objects */ @@ -4957,8 +4948,6 @@ PHP_IMAP_EXPORT void mm_lsub(MAILSTREAM *stream, DTYPE delimiter, char *mailbox, PHP_IMAP_EXPORT void mm_status(MAILSTREAM *stream, char *mailbox, MAILSTATUS *status) { - TSRMLS_FETCH(); - IMAPG(status_flags)=status->flags; if (IMAPG(status_flags) & SA_MESSAGES) { IMAPG(status_messages)=status->messages; @@ -4980,7 +4969,6 @@ PHP_IMAP_EXPORT void mm_status(MAILSTREAM *stream, char *mailbox, MAILSTATUS *st PHP_IMAP_EXPORT void mm_log(char *str, long errflg) { ERRORLIST *cur = NIL; - TSRMLS_FETCH(); /* Author: CJH */ if (errflg != NIL) { /* CJH: maybe put these into a more comprehensive log for debugging purposes? */ @@ -5012,8 +5000,6 @@ PHP_IMAP_EXPORT void mm_dlog(char *str) PHP_IMAP_EXPORT void mm_login(NETMBX *mb, char *user, char *pwd, long trial) { - TSRMLS_FETCH(); - if (*mb->user) { strlcpy (user, mb->user, MAILTMPLEN); } else { diff --git a/ext/intl/collator/collator_convert.c b/ext/intl/collator/collator_convert.c index bc279b25f7..76dc9a4cc3 100644 --- a/ext/intl/collator/collator_convert.c +++ b/ext/intl/collator/collator_convert.c @@ -400,8 +400,6 @@ zval* collator_make_printable_zval( zval* arg, zval *rv) if( Z_TYPE_P(arg) != IS_STRING ) { - TSRMLS_FETCH(); - use_copy = zend_make_printable_zval(arg, &arg_copy TSRMLS_CC); if( use_copy ) diff --git a/ext/intl/converter/converter.c b/ext/intl/converter/converter.c index b27652aa9a..eb37ce00f1 100644 --- a/ext/intl/converter/converter.c +++ b/ext/intl/converter/converter.c @@ -24,9 +24,6 @@ #include "../intl_error.h" typedef struct _php_converter_object { -#ifdef ZTS - void ***tsrm_ls; -#endif UConverter *src, *dest; zend_fcall_info to_cb, from_cb; zend_fcall_info_cache to_cache, from_cache; @@ -229,9 +226,6 @@ static void php_converter_to_u_callback(const void *context, php_converter_object *objval = (php_converter_object*)context; zval retval; zval zargs[4]; -#ifdef ZTS - TSRMLS_D = objval->tsrm_ls; -#endif ZVAL_LONG(&zargs[0], reason); ZVAL_STRINGL(&zargs[1], args->source, args->sourceLimit - args->source); @@ -308,9 +302,6 @@ static void php_converter_from_u_callback(const void *context, zval retval; zval zargs[4]; int i; -#ifdef ZTS - TSRMLS_D = objval->tsrm_ls; -#endif ZVAL_LONG(&zargs[0], reason); array_init(&zargs[1]); @@ -1045,9 +1036,6 @@ static zend_object *php_converter_object_ctor(zend_class_entry *ce, php_converte objval = ecalloc(1, sizeof(php_converter_object) + sizeof(zval) * (ce->default_properties_count - 1)); zend_object_std_init(&objval->obj, ce TSRMLS_CC ); -#ifdef ZTS - objval->tsrm_ls = TSRMLS_C; -#endif intl_error_init(&(objval->error) TSRMLS_CC); objval->obj.handlers = &php_converter_object_handlers; diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c index f74de699ee..efa59c4c68 100644 --- a/ext/ldap/ldap.c +++ b/ext/ldap/ldap.c @@ -2433,7 +2433,6 @@ int _ldap_rebind_proc(LDAP *ldap, const char *url, ber_tag_t req, ber_int_t msgi zval cb_args[2]; zval cb_retval; zval *cb_link = (zval *) params; - TSRMLS_FETCH(); ld = (ldap_linkdata *) zend_fetch_resource(cb_link TSRMLS_CC, -1, "ldap link", NULL, 1, le_link); diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c index d9e92541e9..25f5ac08b9 100644 --- a/ext/libxml/libxml.c +++ b/ext/libxml/libxml.c @@ -302,8 +302,6 @@ static void *php_libxml_streams_IO_open_wrapper(const char *filename, const char int isescaped=0; xmlURI *uri; - TSRMLS_FETCH(); - uri = xmlParseURI(filename); if (uri && (uri->scheme == NULL || (xmlStrncmp(BAD_CAST uri->scheme, BAD_CAST "file", 4) == 0))) { @@ -358,19 +356,16 @@ static void *php_libxml_streams_IO_open_write_wrapper(const char *filename) static int php_libxml_streams_IO_read(void *context, char *buffer, int len) { - TSRMLS_FETCH(); return php_stream_read((php_stream*)context, buffer, len); } static int php_libxml_streams_IO_write(void *context, const char *buffer, int len) { - TSRMLS_FETCH(); return php_stream_write((php_stream*)context, buffer, len); } static int php_libxml_streams_IO_close(void *context) { - TSRMLS_FETCH(); return php_stream_close((php_stream*)context); } @@ -379,7 +374,6 @@ php_libxml_input_buffer_create_filename(const char *URI, xmlCharEncoding enc) { xmlParserInputBufferPtr ret; void *context = NULL; - TSRMLS_FETCH(); if (LIBXML(entity_loader_disabled)) { return NULL; @@ -463,8 +457,6 @@ static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg) xmlError error_copy; int ret; - TSRMLS_FETCH(); - memset(&error_copy, 0, sizeof(xmlError)); if (error) { @@ -520,8 +512,6 @@ static void php_libxml_internal_error_handler(int error_type, void *ctx, const c char *buf; int len, len_iter, output = 0; - TSRMLS_FETCH(); - len = vspprintf(&buf, 0, *msg, ap); len_iter = len; @@ -563,7 +553,6 @@ static xmlParserInputPtr _php_libxml_external_entity_loader(const char *URL, zval params[3]; int status; zend_fcall_info *fci; - TSRMLS_FETCH(); fci = &LIBXML(entity_loader).fci; @@ -680,8 +669,6 @@ is_string: static xmlParserInputPtr _php_libxml_pre_ext_ent_loader(const char *URL, const char *ID, xmlParserCtxtPtr context) { - TSRMLS_FETCH(); - /* Check whether we're running in a PHP context, since the entity loader * we've defined is an application level (true global) setting. * If we are, we also want to check whether we've finished activating @@ -889,7 +876,6 @@ static PHP_MSHUTDOWN_FUNCTION(libxml) static int php_libxml_post_deactivate(void) { - TSRMLS_FETCH(); /* reset libxml generic error handling */ if (_php_libxml_per_request_initialization) { xmlSetGenericErrorFunc(NULL, NULL); diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c index 878c8fb946..9a67d80103 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -89,7 +89,7 @@ static void free_prop_handler(zval *el) { void php_mysqli_dtor_p_elements(void *data) { MYSQL *mysql = (MYSQL *)data; - TSRMLS_FETCH(); + mysqli_close(mysql, MYSQLI_CLOSE_IMPLICIT); } @@ -930,7 +930,6 @@ PHP_RINIT_FUNCTION(mysqli) #if defined(A0) && defined(MYSQLI_USE_MYSQLND) static void php_mysqli_persistent_helper_for_every(void *p) { - TSRMLS_FETCH(); mysqlnd_end_psession((MYSQLND *) p); } /* }}} */ diff --git a/ext/mysqlnd/mysqlnd_debug.c b/ext/mysqlnd/mysqlnd_debug.c index f1fde4efbb..c8f682b8e2 100644 --- a/ext/mysqlnd/mysqlnd_debug.c +++ b/ext/mysqlnd/mysqlnd_debug.c @@ -39,8 +39,6 @@ static const char * const mysqlnd_debug_empty_string = ""; static enum_func_status MYSQLND_METHOD(mysqlnd_debug, open)(MYSQLND_DEBUG * self, zend_bool reopen) { - MYSQLND_ZTS(self); - if (!self->file_name) { return FAIL; } @@ -67,7 +65,6 @@ MYSQLND_METHOD(mysqlnd_debug, log)(MYSQLND_DEBUG * self, unsigned int flags = self->flags; char pid_buffer[10], time_buffer[30], file_buffer[200], line_buffer[6], level_buffer[7]; - MYSQLND_ZTS(self); if (!self->stream && FAIL == self->m->open(self, FALSE)) { return FAIL; @@ -165,7 +162,6 @@ MYSQLND_METHOD(mysqlnd_debug, log_va)(MYSQLND_DEBUG *self, unsigned int flags = self->flags; char pid_buffer[10], time_buffer[30], file_buffer[200], line_buffer[6], level_buffer[7]; - MYSQLND_ZTS(self); if (!self->stream && FAIL == self->m->open(self, FALSE)) { return FAIL; @@ -436,7 +432,6 @@ MYSQLND_METHOD(mysqlnd_debug, func_leave)(MYSQLND_DEBUG * self, unsigned int lin static enum_func_status MYSQLND_METHOD(mysqlnd_debug, close)(MYSQLND_DEBUG * self) { - MYSQLND_ZTS(self); if (self->stream) { #ifndef MYSQLND_PROFILING_DISABLED if (!(self->flags & MYSQLND_DEBUG_FLUSH) && (self->flags & MYSQLND_DEBUG_PROFILE_CALLS)) { @@ -718,9 +713,7 @@ PHPAPI MYSQLND_DEBUG * mysqlnd_debug_init(const char * skip_functions[] TSRMLS_DC) { MYSQLND_DEBUG *ret = calloc(1, sizeof(MYSQLND_DEBUG)); -#ifdef ZTS - ret->TSRMLS_C = TSRMLS_C; -#endif + ret->nest_level_limit = 0; ret->pid = getpid(); zend_stack_init(&ret->call_stack, sizeof(char *)); diff --git a/ext/mysqlnd/mysqlnd_debug.h b/ext/mysqlnd/mysqlnd_debug.h index bb4ff3e895..e8dfeb6c4a 100644 --- a/ext/mysqlnd/mysqlnd_debug.h +++ b/ext/mysqlnd/mysqlnd_debug.h @@ -45,9 +45,6 @@ struct st_mysqlnd_debug_methods struct st_mysqlnd_debug { php_stream *stream; -#ifdef ZTS - TSRMLS_D; -#endif unsigned int flags; unsigned int nest_level_limit; int pid; diff --git a/ext/mysqlnd/mysqlnd_driver.c b/ext/mysqlnd/mysqlnd_driver.c index e67d023edb..a35474b9e6 100644 --- a/ext/mysqlnd/mysqlnd_driver.c +++ b/ext/mysqlnd/mysqlnd_driver.c @@ -99,9 +99,7 @@ static void mysqlnd_error_list_pdtor(void * pDest) { MYSQLND_ERROR_LIST_ELEMENT * element = (MYSQLND_ERROR_LIST_ELEMENT *) pDest; -#ifdef ZTS - TSRMLS_FETCH(); -#endif + DBG_ENTER("mysqlnd_error_list_pdtor"); if (element->error) { mnd_pefree(element->error, TRUE); diff --git a/ext/mysqlnd/mysqlnd_plugin.c b/ext/mysqlnd/mysqlnd_plugin.c index 3bb3c05147..2d909246d0 100644 --- a/ext/mysqlnd/mysqlnd_plugin.c +++ b/ext/mysqlnd/mysqlnd_plugin.c @@ -130,12 +130,10 @@ mysqlnd_plugin_subsystem_end(TSRMLS_D) /* {{{ mysqlnd_plugin_register */ PHPAPI unsigned int mysqlnd_plugin_register() { - TSRMLS_FETCH(); return mysqlnd_plugin_register_ex(NULL TSRMLS_CC); } /* }}} */ - /* {{{ mysqlnd_plugin_register_ex */ PHPAPI unsigned int mysqlnd_plugin_register_ex(struct st_mysqlnd_plugin_header * plugin TSRMLS_DC) { diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index 6729163996..fe8c88e7ad 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -521,7 +521,6 @@ static void _close_odbc_pconn(zend_resource *rsrc TSRMLS_DC) static PHP_INI_DISP(display_link_nums) { char *value; - TSRMLS_FETCH(); if (type == PHP_INI_DISPLAY_ORIG && ini_entry->modified) { value = ini_entry->orig_value->val; @@ -546,7 +545,6 @@ static PHP_INI_DISP(display_link_nums) static PHP_INI_DISP(display_defPW) { char *value; - TSRMLS_FETCH(); if (type == PHP_INI_DISPLAY_ORIG && ini_entry->modified) { value = ini_entry->orig_value->val; @@ -577,7 +575,6 @@ static PHP_INI_DISP(display_defPW) static PHP_INI_DISP(display_binmode) { char *value; - TSRMLS_FETCH(); if (type == PHP_INI_DISPLAY_ORIG && ini_entry->modified) { value = ini_entry->orig_value->val; @@ -608,7 +605,6 @@ static PHP_INI_DISP(display_binmode) static PHP_INI_DISP(display_lrl) { char *value; - TSRMLS_FETCH(); if (type == PHP_INI_DISPLAY_ORIG && ini_entry->modified) { value = ini_entry->orig_value->val; @@ -634,7 +630,6 @@ static PHP_INI_DISP(display_lrl) static PHP_INI_DISP(display_cursortype) { char *value; - TSRMLS_FETCH(); if (type == PHP_INI_DISPLAY_ORIG && ini_entry->modified) { value = ini_entry->orig_value->val; @@ -868,7 +863,6 @@ void odbc_sql_error(ODBC_SQL_ERROR_PARAMS) RETCODE rc; ODBC_SQL_ENV_T henv; ODBC_SQL_CONN_T conn; - TSRMLS_FETCH(); if (conn_resource) { henv = conn_resource->henv; diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c index d36827bde6..beab9be59c 100644 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@ -1821,8 +1821,6 @@ static void zend_reset_cache_vars(TSRMLS_D) static void accel_activate(void) { - TSRMLS_FETCH(); - if (!ZCG(enabled) || !accel_startup_ok) { return; } @@ -1934,7 +1932,6 @@ static void accel_fast_zval_dtor(zval *zvalue) if (Z_REFCOUNTED_P(zvalue) && Z_DELREF_P(zvalue) == 0) { switch (Z_TYPE_P(zvalue)) { case IS_ARRAY: { - TSRMLS_FETCH(); GC_REMOVE_FROM_BUFFER(Z_ARR_P(zvalue)); if (Z_ARR_P(zvalue) != &EG(symbol_table)) { /* break possible cycles */ @@ -1945,15 +1942,11 @@ static void accel_fast_zval_dtor(zval *zvalue) break; case IS_OBJECT: { - TSRMLS_FETCH(); - OBJ_RELEASE(Z_OBJ_P(zvalue)); } break; case IS_RESOURCE: { - TSRMLS_FETCH(); - /* destroy resource */ zend_list_delete(Z_RES_P(zvalue)); } @@ -2089,7 +2082,6 @@ static void accel_deactivate(void) * In general, they're restored by persistent_compile_file(), but in case * the script is aborted abnormally, they may become messed up. */ - TSRMLS_FETCH(); if (!ZCG(enabled) || !accel_startup_ok) { return; @@ -2263,7 +2255,6 @@ static int accel_startup(zend_extension *extension) { zend_function *func; zend_ini_entry *ini_entry; - TSRMLS_FETCH(); #ifdef ZTS accel_globals_id = ts_allocate_id(&accel_globals_id, sizeof(zend_accel_globals), (ts_allocate_ctor) accel_globals_ctor, (ts_allocate_dtor) accel_globals_dtor); diff --git a/ext/opcache/shared_alloc_win32.c b/ext/opcache/shared_alloc_win32.c index 37431fb18a..cab33b5b38 100644 --- a/ext/opcache/shared_alloc_win32.c +++ b/ext/opcache/shared_alloc_win32.c @@ -188,7 +188,6 @@ static int create_segments(size_t requested_size, zend_shared_segment ***shared_ void *vista_mapping_base_set[] = { (void *) 0x20000000, (void *) 0x21000000, (void *) 0x30000000, (void *) 0x31000000, (void *) 0x50000000, 0 }; #endif void **wanted_mapping_base = default_mapping_base_set; - TSRMLS_FETCH(); zend_shared_alloc_lock_win32(); /* Mapping retries: When Apache2 restarts, the parent process startup routine diff --git a/ext/opcache/zend_accelerator_blacklist.c b/ext/opcache/zend_accelerator_blacklist.c index 7263ed3c93..33aed3ce70 100644 --- a/ext/opcache/zend_accelerator_blacklist.c +++ b/ext/opcache/zend_accelerator_blacklist.c @@ -237,7 +237,6 @@ void zend_accel_blacklist_load(zend_blacklist *blacklist, char *filename) char buf[MAXPATHLEN + 1], real_path[MAXPATHLEN + 1], *blacklist_path = NULL; FILE *fp; int path_length, blacklist_path_length; - TSRMLS_FETCH(); if ((fp = fopen(filename, "r")) == NULL) { zend_accel_error(ACCEL_LOG_WARNING, "Cannot load blacklist file: %s\n", filename); diff --git a/ext/opcache/zend_accelerator_debug.c b/ext/opcache/zend_accelerator_debug.c index 2a386b812b..feed711bf5 100644 --- a/ext/opcache/zend_accelerator_debug.c +++ b/ext/opcache/zend_accelerator_debug.c @@ -34,7 +34,6 @@ void zend_accel_error(int type, const char *format, ...) time_t timestamp; char *time_string; FILE * fLog = NULL; - TSRMLS_FETCH(); if (type > ZCG(accel_directives).log_verbosity_level) { return; diff --git a/ext/opcache/zend_accelerator_util_funcs.c b/ext/opcache/zend_accelerator_util_funcs.c index ee7be50619..1d949e4db4 100644 --- a/ext/opcache/zend_accelerator_util_funcs.c +++ b/ext/opcache/zend_accelerator_util_funcs.c @@ -53,7 +53,6 @@ static zend_ast *zend_ast_clone(zend_ast *ast TSRMLS_DC); static void zend_accel_destroy_zend_function(zval *zv) { zend_function *function = Z_PTR_P(zv); - TSRMLS_FETCH(); if (function->type == ZEND_USER_FUNCTION) { if (function->op_array.static_variables) { @@ -353,7 +352,6 @@ static void zend_hash_clone_zval(HashTable *ht, HashTable *source, int bind) uint idx; Bucket *p, *q, *r; zend_ulong nIndex; - TSRMLS_FETCH(); ht->nTableSize = source->nTableSize; ht->nTableMask = source->nTableMask; @@ -606,7 +604,6 @@ static void zend_class_copy_ctor(zend_class_entry **pce) zend_class_entry *old_ce = ce; zend_class_entry *new_ce; zend_function *new_func; - TSRMLS_FETCH(); *pce = ce = ARENA_REALLOC(old_ce); ce->refcount = 1; diff --git a/ext/opcache/zend_shared_alloc.c b/ext/opcache/zend_shared_alloc.c index 43a0263ee5..f3f7bd7d30 100644 --- a/ext/opcache/zend_shared_alloc.c +++ b/ext/opcache/zend_shared_alloc.c @@ -157,8 +157,6 @@ int zend_shared_alloc_startup(size_t requested_size) const zend_shared_memory_handler_entry *he; int res = ALLOC_FAILURE; - TSRMLS_FETCH(); - /* shared_free must be valid before we call zend_shared_alloc() * - make it temporarily point to a local variable */ @@ -298,7 +296,6 @@ void *zend_shared_alloc(size_t size) { int i; unsigned int block_size = ZEND_ALIGNED_SIZE(size); - TSRMLS_FETCH(); #if 1 if (!ZCG(locked)) { diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index c4b155b478..c565a7fac5 100755 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -994,8 +994,6 @@ static int php_openssl_write_rand_file(const char * file, int egdsocket, int see { char buffer[MAXPATHLEN]; - TSRMLS_FETCH(); - if (egdsocket || !seeded) { /* if we did not manage to read the seed file, we should not write * a low-entropy seed file back */ @@ -2058,7 +2056,6 @@ static STACK_OF(X509) * load_all_certs_from_file(char *certfile) STACK_OF(X509) *stack=NULL, *ret=NULL; BIO *in=NULL; X509_INFO *xi; - TSRMLS_FETCH(); if(!(stack = sk_X509_new_null())) { php_error_docref(NULL TSRMLS_CC, E_ERROR, "memory allocation failure"); @@ -2111,7 +2108,6 @@ static int check_cert(X509_STORE *ctx, X509 *x, STACK_OF(X509) *untrustedchain, { int ret=0; X509_STORE_CTX *csc; - TSRMLS_FETCH(); csc = X509_STORE_CTX_new(); if (csc == NULL) { diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c index 54562c22e5..62c69c4a5a 100644 --- a/ext/openssl/xp_ssl.c +++ b/ext/openssl/xp_ssl.c @@ -232,8 +232,6 @@ static int verify_callback(int preverify_ok, X509_STORE_CTX *ctx) /* {{{ */ zval *val; zend_ulong allowed_depth = OPENSSL_DEFAULT_STREAM_VERIFY_DEPTH; - TSRMLS_FETCH(); - ret = preverify_ok; /* determine the status for the current cert */ @@ -534,8 +532,6 @@ static int win_cert_verify_callback(X509_STORE_CTX *x509_store_ctx, void *arg) / zval *val; zend_bool is_self_signed = 0; - TSRMLS_FETCH(); - stream = (php_stream*)arg; sslsock = (php_openssl_netstream_data_t*)stream->abstract; @@ -987,8 +983,6 @@ static void limit_handshake_reneg(const SSL *ssl) /* {{{ */ if (sslsock->reneg->tokens > sslsock->reneg->limit) { zval *val; - TSRMLS_FETCH(); - sslsock->reneg->should_close = 1; if (PHP_STREAM_CONTEXT(stream) && (val = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), diff --git a/ext/pcntl/pcntl.c b/ext/pcntl/pcntl.c index 11ad1018ec..0086b383b9 100644 --- a/ext/pcntl/pcntl.c +++ b/ext/pcntl/pcntl.c @@ -1191,7 +1191,6 @@ PHP_FUNCTION(pcntl_strerror) static void pcntl_signal_handler(int signo) { struct php_pcntl_pending_signal *psig; - TSRMLS_FETCH(); psig = PCNTL_G(spares); if (!psig) { @@ -1219,7 +1218,6 @@ void pcntl_signal_dispatch() struct php_pcntl_pending_signal *queue, *next; sigset_t mask; sigset_t old_mask; - TSRMLS_FETCH(); /* Mask all signals */ sigfillset(&mask); diff --git a/ext/pcntl/php_signal.c b/ext/pcntl/php_signal.c index aa2139342c..f19c8a9a25 100644 --- a/ext/pcntl/php_signal.c +++ b/ext/pcntl/php_signal.c @@ -28,9 +28,7 @@ Sigfunc *php_signal4(int signo, Sigfunc *func, int restart, int mask_all) { struct sigaction act,oact; -#ifdef ZEND_SIGNALS - TSRMLS_FETCH(); -#endif + act.sa_handler = func; if (mask_all) { sigfillset(&act.sa_mask); diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index 705d08bacf..4a958d92cf 100644 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -274,7 +274,6 @@ static void param_dtor(zval *el) /* {{{ */ /* tell the driver that it is going away */ if (param->stmt->methods->param_hook) { - TSRMLS_FETCH(); param->stmt->methods->param_hook(param->stmt, param, PDO_PARAM_EVT_FREE TSRMLS_CC); } diff --git a/ext/pdo_dblib/pdo_dblib.c b/ext/pdo_dblib/pdo_dblib.c index 3afd885df5..67a1d7abaf 100644 --- a/ext/pdo_dblib/pdo_dblib.c +++ b/ext/pdo_dblib/pdo_dblib.c @@ -91,7 +91,6 @@ int error_handler(DBPROCESS *dbproc, int severity, int dberr, { pdo_dblib_err *einfo; char *state = "HY000"; - TSRMLS_FETCH(); if(dbproc) { einfo = (pdo_dblib_err*)dbgetuserdata(dbproc); @@ -141,7 +140,6 @@ int msg_handler(DBPROCESS *dbproc, DBINT msgno, int msgstate, int severity, char *msgtext, char *srvname, char *procname, DBUSMALLINT line) { pdo_dblib_err *einfo; - TSRMLS_FETCH(); if (severity) { einfo = (pdo_dblib_err*)dbgetuserdata(dbproc); diff --git a/ext/pdo_oci/oci_statement.c b/ext/pdo_oci/oci_statement.c index 7c86a23dcc..3551030ec4 100644 --- a/ext/pdo_oci/oci_statement.c +++ b/ext/pdo_oci/oci_statement.c @@ -188,7 +188,6 @@ static sb4 oci_bind_input_cb(dvoid *ctx, OCIBind *bindp, ub4 iter, ub4 index, dv { struct pdo_bound_param_data *param = (struct pdo_bound_param_data*)ctx; pdo_oci_bound_param *P = (pdo_oci_bound_param*)param->driver_data; - TSRMLS_FETCH(); if (!param || !param->parameter) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "param is NULL in oci_bind_input_cb; this should not happen"); @@ -220,7 +219,6 @@ static sb4 oci_bind_output_cb(dvoid *ctx, OCIBind *bindp, ub4 iter, ub4 index, d { struct pdo_bound_param_data *param = (struct pdo_bound_param_data*)ctx; pdo_oci_bound_param *P = (pdo_oci_bound_param*)param->driver_data; - TSRMLS_FETCH(); if (!param || !param->parameter) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "param is NULL in oci_bind_output_cb; this should not happen"); @@ -481,7 +479,6 @@ static sb4 oci_define_callback(dvoid *octxp, OCIDefine *define, ub4 iter, dvoid ub4 **alenpp, ub1 *piecep, dvoid **indpp, ub2 **rcodepp) { pdo_oci_column *col = (pdo_oci_column*)octxp; - TSRMLS_FETCH(); switch (col->dtype) { case SQLT_BLOB: diff --git a/ext/pdo_sqlite/sqlite_driver.c b/ext/pdo_sqlite/sqlite_driver.c index 413b50b9d4..c5357081ed 100644 --- a/ext/pdo_sqlite/sqlite_driver.c +++ b/ext/pdo_sqlite/sqlite_driver.c @@ -448,7 +448,6 @@ static void php_sqlite3_func_callback(sqlite3_context *context, int argc, sqlite3_value **argv) { struct pdo_sqlite_func *func = (struct pdo_sqlite_func*)sqlite3_user_data(context); - TSRMLS_FETCH(); do_callback(&func->afunc, &func->func, argc, argv, context, 0 TSRMLS_CC); } @@ -457,7 +456,6 @@ static void php_sqlite3_func_step_callback(sqlite3_context *context, int argc, sqlite3_value **argv) { struct pdo_sqlite_func *func = (struct pdo_sqlite_func*)sqlite3_user_data(context); - TSRMLS_FETCH(); do_callback(&func->astep, &func->step, argc, argv, context, 1 TSRMLS_CC); } @@ -465,7 +463,6 @@ static void php_sqlite3_func_step_callback(sqlite3_context *context, int argc, static void php_sqlite3_func_final_callback(sqlite3_context *context) { struct pdo_sqlite_func *func = (struct pdo_sqlite_func*)sqlite3_user_data(context); - TSRMLS_FETCH(); do_callback(&func->afini, &func->fini, 0, NULL, context, 1 TSRMLS_CC); } @@ -478,7 +475,6 @@ static int php_sqlite3_collation_callback(void *context, zval zargs[2]; zval retval; struct pdo_sqlite_collation *collation = (struct pdo_sqlite_collation*) context; - TSRMLS_FETCH(); collation->fc.fci.size = sizeof(collation->fc.fci); collation->fc.fci.function_table = EG(function_table); @@ -763,7 +759,6 @@ static int authorizer(void *autharg, int access_type, const char *arg3, const ch char *filename; switch (access_type) { case SQLITE_COPY: { - TSRMLS_FETCH(); filename = make_filename_safe(arg4 TSRMLS_CC); if (!filename) { return SQLITE_DENY; @@ -773,7 +768,6 @@ static int authorizer(void *autharg, int access_type, const char *arg3, const ch } case SQLITE_ATTACH: { - TSRMLS_FETCH(); filename = make_filename_safe(arg3 TSRMLS_CC); if (!filename) { return SQLITE_DENY; diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 207764b165..931ec336e8 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -834,7 +834,6 @@ static char *php_pgsql_PQescapeInternal(PGconn *conn, const char *str, size_t le !strncmp(encoding, "GBK", sizeof("GBK")-1) || !strncmp(encoding, "JOHAB", sizeof("JOHAB")-1) || !strncmp(encoding, "UHC", sizeof("UHC")-1) ) { - TSRMLS_FETCH(); php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unsafe encoding is used. Do not use '%s' encoding or use PostgreSQL 9.0 or later libpq.", encoding); } @@ -961,7 +960,6 @@ static void _php_pgsql_notice_handler(void *resource_id, const char *message) { php_pgsql_notice *notice; - TSRMLS_FETCH(); if (! PGG(ignore_notices)) { notice = (php_pgsql_notice *)emalloc(sizeof(php_pgsql_notice)); notice->message = _php_pgsql_trim_message(message, ¬ice->len); diff --git a/ext/phar/phar.c b/ext/phar/phar.c index cdc61fee88..e3b663a011 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -312,7 +312,6 @@ int phar_archive_delref(phar_archive_data *phar TSRMLS_DC) /* {{{ */ static void destroy_phar_data_only(zval *zv) /* {{{ */ { phar_archive_data *phar_data = (phar_archive_data *) Z_PTR_P(zv); - TSRMLS_FETCH(); if (EG(exception) || --phar_data->refcount < 0) { phar_destroy_phar_data(phar_data TSRMLS_CC); @@ -355,7 +354,6 @@ static int phar_tmpclose_apply(zval *zv TSRMLS_DC) /* {{{ */ static void destroy_phar_data(zval *zv) /* {{{ */ { phar_archive_data *phar_data = (phar_archive_data *)Z_PTR_P(zv); - TSRMLS_FETCH(); if (PHAR_GLOBALS->request_ends) { /* first, iterate over the manifest and close all PHAR_TMP entry fp handles, @@ -378,8 +376,6 @@ static void destroy_phar_data(zval *zv) /* {{{ */ */ void destroy_phar_manifest_entry_int(phar_entry_info *entry) /* {{{ */ { - TSRMLS_FETCH(); - if (entry->cfp) { php_stream_close(entry->cfp); entry->cfp = 0; diff --git a/ext/phar/phar_internal.h b/ext/phar/phar_internal.h index f49143bc8c..ed5fedd547 100644 --- a/ext/phar/phar_internal.h +++ b/ext/phar/phar_internal.h @@ -197,7 +197,7 @@ ZEND_EXTERN_MODULE_GLOBALS(phar) #ifdef ZTS # include "TSRM.h" # define PHAR_G(v) TSRMG(phar_globals_id, zend_phar_globals *, v) -# define PHAR_GLOBALS ((zend_phar_globals *) (*((void ***) tsrm_ls))[TSRM_UNSHUFFLE_RSRC_ID(phar_globals_id)]) +# define PHAR_GLOBALS ((zend_phar_globals *) (*((void ***) tsrm_get_ls_cache()))[TSRM_UNSHUFFLE_RSRC_ID(phar_globals_id)]) #else # define PHAR_G(v) (phar_globals.v) # define PHAR_GLOBALS (&phar_globals) diff --git a/ext/readline/readline.c b/ext/readline/readline.c index 0e7b146174..1b4fa5120a 100644 --- a/ext/readline/readline.c +++ b/ext/readline/readline.c @@ -481,7 +481,6 @@ static char **_readline_completion_cb(const char *text, int start, int end) zval params[3]; int i; char **matches = NULL; - TSRMLS_FETCH(); _readline_string_zval(¶ms[0], text); _readline_long_zval(¶ms[1], start); @@ -544,7 +543,6 @@ static void php_rl_callback_handler(char *the_line) { zval params[1]; zval dummy; - TSRMLS_FETCH(); ZVAL_NULL(&dummy); diff --git a/ext/readline/readline_cli.c b/ext/readline/readline_cli.c index 48ab488763..df23b55c3a 100644 --- a/ext/readline/readline_cli.c +++ b/ext/readline/readline_cli.c @@ -505,7 +505,6 @@ TODO: */ char *retval = NULL; int textlen = strlen(text); - TSRMLS_FETCH(); if (!index) { cli_completion_state = 0; diff --git a/ext/session/mod_mm.c b/ext/session/mod_mm.c index bf48436a7e..ff5cb320e0 100644 --- a/ext/session/mod_mm.c +++ b/ext/session/mod_mm.c @@ -122,8 +122,6 @@ static ps_sd *ps_sd_new(ps_mm *data, const char *key) sd = mm_malloc(data->mm, sizeof(ps_sd) + keylen); if (!sd) { - TSRMLS_FETCH(); - php_error_docref(NULL TSRMLS_CC, E_WARNING, "mm_malloc failed, avail %ld, err %s", mm_available(data->mm), mm_error()); return NULL; } diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index d34587b85e..bbba4e36ca 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -3413,7 +3413,6 @@ xmlNsPtr encode_add_ns(xmlNodePtr node, const char* ns) } if (xmlns == NULL) { xmlChar* prefix; - TSRMLS_FETCH(); if ((prefix = zend_hash_str_find_ptr(&SOAP_GLOBAL(defEncNs), (char*)ns, strlen(ns))) != NULL) { xmlns = xmlNewNs(node->doc->children, BAD_CAST(ns), prefix); @@ -3457,7 +3456,6 @@ static void set_xsi_type(xmlNodePtr node, char *type) void encode_reset_ns() { - TSRMLS_FETCH(); SOAP_GLOBAL(cur_uniq_ns) = 0; SOAP_GLOBAL(cur_uniq_ref) = 0; if (SOAP_GLOBAL(ref_map)) { @@ -3470,7 +3468,6 @@ void encode_reset_ns() void encode_finish() { - TSRMLS_FETCH(); SOAP_GLOBAL(cur_uniq_ns) = 0; SOAP_GLOBAL(cur_uniq_ref) = 0; if (SOAP_GLOBAL(ref_map)) { @@ -3483,7 +3480,6 @@ void encode_finish() encodePtr get_conversion(int encode) { encodePtr enc; - TSRMLS_FETCH(); if ((enc = zend_hash_index_find_ptr(&SOAP_GLOBAL(defEncIndex), encode)) == NULL) { soap_error0(E_ERROR, "Encoding: Cannot find encoding"); @@ -3610,8 +3606,6 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type TS static void get_type_str(xmlNodePtr node, const char* ns, const char* type, smart_str* ret) { - TSRMLS_FETCH(); - if (ns) { xmlNsPtr xmlns; if (SOAP_GLOBAL(soap_version) == SOAP_1_2 && diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c index 798c06fdd2..45582da6d9 100644 --- a/ext/soap/php_sdl.c +++ b/ext/soap/php_sdl.c @@ -168,7 +168,6 @@ encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type) encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat, int len) { encodePtr enc; - TSRMLS_FETCH(); if ((enc = zend_hash_str_find_ptr(&SOAP_GLOBAL(defEnc), (char*)nscat, len)) != NULL) { return enc; diff --git a/ext/soap/php_xml.c b/ext/soap/php_xml.c index 5ad5548c40..d59a65f182 100644 --- a/ext/soap/php_xml.c +++ b/ext/soap/php_xml.c @@ -133,8 +133,6 @@ xmlDocPtr soap_xmlParseMemory(const void *buf, size_t buf_size) xmlParserCtxtPtr ctxt = NULL; xmlDocPtr ret; - TSRMLS_FETCH(); - /* xmlInitParser(); */ diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 2b37622a7a..7c03b9ced4 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -2133,7 +2133,6 @@ static void soap_error_handler(int error_num, const char *error_filename, const zend_execute_data *_old_current_execute_data; int _old_http_response_code; char *_old_http_status_line; - TSRMLS_FETCH(); _old_in_compilation = CG(in_compilation); _old_current_execute_data = EG(current_execute_data); @@ -3384,7 +3383,6 @@ static void deserialize_parameters(xmlNodePtr params, sdlFunctionPtr function, i sdlParamPtr param = NULL; if (function != NULL && (param = zend_hash_index_find_ptr(function->requestParameters, cur_param)) == NULL) { - TSRMLS_FETCH(); soap_server_fault("Client", "Error cannot find parameter", NULL, NULL, NULL TSRMLS_CC); } if (param == NULL) { diff --git a/ext/sockets/config.m4 b/ext/sockets/config.m4 index a5a63dfb61..cea27000cf 100644 --- a/ext/sockets/config.m4 +++ b/ext/sockets/config.m4 @@ -56,6 +56,6 @@ if test "$PHP_SOCKETS" != "no"; then AC_DEFINE(HAVE_AI_V4MAPPED,1,[Whether you have AI_V4MAPPED]) fi - PHP_NEW_EXTENSION([sockets], [sockets.c multicast.c conversions.c sockaddr_conv.c sendrecvmsg.c], [$ext_shared]) + PHP_NEW_EXTENSION([sockets], [sockets.c multicast.c conversions.c sockaddr_conv.c sendrecvmsg.c], [$ext_shared],, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_INSTALL_HEADERS([ext/sockets/], [php_sockets.h]) fi diff --git a/ext/sockets/config.w32 b/ext/sockets/config.w32 index aeaa8ed425..d3455b05dd 100644 --- a/ext/sockets/config.w32 +++ b/ext/sockets/config.w32 @@ -7,7 +7,7 @@ if (PHP_SOCKETS != "no") { if (CHECK_LIB("ws2_32.lib", "sockets", PHP_SOCKETS) && CHECK_LIB("Iphlpapi.lib", "sockets", PHP_SOCKETS) && CHECK_HEADER_ADD_INCLUDE("winsock.h", "CFLAGS_SOCKETS")) { - EXTENSION('sockets', 'sockets.c multicast.c conversions.c sockaddr_conv.c sendrecvmsg.c'); + EXTENSION('sockets', 'sockets.c multicast.c conversions.c sockaddr_conv.c sendrecvmsg.c', PHP_SOCKETS_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"); AC_DEFINE('HAVE_SOCKETS', 1); PHP_INSTALL_HEADERS("ext/sockets", "php_sockets.h"); } else { diff --git a/ext/sockets/conversions.c b/ext/sockets/conversions.c index d808271728..baa5681287 100644 --- a/ext/sockets/conversions.c +++ b/ext/sockets/conversions.c @@ -541,7 +541,6 @@ static void from_zval_write_sin_addr(const zval *zaddr_str, char *inaddr, ser_co int res; struct sockaddr_in saddr = {0}; zend_string *addr_str; - TSRMLS_FETCH(); addr_str = zval_get_string((zval *) zaddr_str); res = php_set_inet_addr(&saddr, addr_str->val, ctx->sock TSRMLS_CC); @@ -592,7 +591,6 @@ static void from_zval_write_sin6_addr(const zval *zaddr_str, char *addr6, ser_co int res; struct sockaddr_in6 saddr6 = {0}; zend_string *addr_str; - TSRMLS_FETCH(); addr_str = zval_get_string((zval *) zaddr_str); res = php_set_inet6_addr(&saddr6, addr_str->val, ctx->sock TSRMLS_CC); @@ -645,7 +643,6 @@ static void from_zval_write_sun_path(const zval *path, char *sockaddr_un_c, ser_ { zend_string *path_str; struct sockaddr_un *saddr = (struct sockaddr_un*)sockaddr_un_c; - TSRMLS_FETCH(); path_str = zval_get_string((zval *) path); @@ -1246,7 +1243,6 @@ static void from_zval_write_ifindex(const zval *zv, char *uinteger, ser_context } } else { zend_string *str; - TSRMLS_FETCH(); str = zval_get_string((zval *) zv); @@ -1350,7 +1346,6 @@ size_t calculate_scm_rights_space(const zval *arr, ser_context *ctx) static void from_zval_write_fd_array_aux(zval *elem, unsigned i, void **args, ser_context *ctx) { int *iarr = args[0]; - TSRMLS_FETCH(); if (Z_TYPE_P(elem) == IS_RESOURCE) { php_stream *stream; @@ -1395,7 +1390,6 @@ void to_zval_read_fd_array(const char *data, zval *zv, res_context *ctx) i; struct cmsghdr *dummy_cmsg = 0; size_t data_offset; - TSRMLS_FETCH(); data_offset = (unsigned char *)CMSG_DATA(dummy_cmsg) - (unsigned char *)dummy_cmsg; diff --git a/ext/sockets/php_sockets.h b/ext/sockets/php_sockets.h index b1ee5798c9..8a25f960a3 100644 --- a/ext/sockets/php_sockets.h +++ b/ext/sockets/php_sockets.h @@ -89,7 +89,7 @@ ZEND_BEGIN_MODULE_GLOBALS(sockets) ZEND_END_MODULE_GLOBALS(sockets) #ifdef ZTS -#define SOCKETS_G(v) TSRMG(sockets_globals_id, zend_sockets_globals *, v) +#define SOCKETS_G(v) ZEND_TSRMG(sockets_globals_id, zend_sockets_globals *, v) #else #define SOCKETS_G(v) (sockets_globals.v) #endif diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index 0dab51bed6..263b8c45f7 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -370,6 +370,9 @@ zend_module_entry sockets_module_entry = { #ifdef COMPILE_DL_SOCKETS +#ifdef ZTS + ZEND_TSRMLS_CACHE_DEFINE; +#endif ZEND_GET_MODULE(sockets) #endif @@ -600,6 +603,9 @@ char *sockets_strerror(int error TSRMLS_DC) /* {{{ */ /* {{{ PHP_GINIT_FUNCTION */ static PHP_GINIT_FUNCTION(sockets) { +#if defined(COMPILE_DL_SOCKETS) && defined(ZTS) + ZEND_TSRMLS_CACHE_UPDATE; +#endif sockets_globals->last_error = 0; sockets_globals->strerror_buf = NULL; } @@ -609,6 +615,9 @@ static PHP_GINIT_FUNCTION(sockets) */ static PHP_MINIT_FUNCTION(sockets) { +#if defined(COMPILE_DL_SOCKETS) && defined(ZTS) + ZEND_TSRMLS_CACHE_UPDATE; +#endif le_socket = zend_register_list_destructors_ex(php_destroy_socket, NULL, le_socket_name, module_number); REGISTER_LONG_CONSTANT("AF_UNIX", AF_UNIX, CONST_CS | CONST_PERSISTENT); diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c index af3dec0681..214909a0c2 100644 --- a/ext/sqlite3/sqlite3.c +++ b/ext/sqlite3/sqlite3.c @@ -48,7 +48,6 @@ static void php_sqlite3_error(php_sqlite3_db_object *db_obj, char *format, ...) { va_list arg; char *message; - TSRMLS_FETCH(); va_start(arg, format); vspprintf(&message, 0, format, arg); @@ -812,7 +811,6 @@ static int sqlite3_do_callback(struct php_sqlite3_fci *fc, zval *cb, int argc, s static void php_sqlite3_callback_func(sqlite3_context *context, int argc, sqlite3_value **argv) /* {{{ */ { php_sqlite3_func *func = (php_sqlite3_func *)sqlite3_user_data(context); - TSRMLS_FETCH(); sqlite3_do_callback(&func->afunc, &func->func, argc, argv, context, 0 TSRMLS_CC); } @@ -823,7 +821,6 @@ static void php_sqlite3_callback_step(sqlite3_context *context, int argc, sqlite php_sqlite3_func *func = (php_sqlite3_func *)sqlite3_user_data(context); php_sqlite3_agg_context *agg_context = (php_sqlite3_agg_context *)sqlite3_aggregate_context(context, sizeof(php_sqlite3_agg_context)); - TSRMLS_FETCH(); agg_context->row_count++; sqlite3_do_callback(&func->astep, &func->step, argc, argv, context, 1 TSRMLS_CC); @@ -835,7 +832,6 @@ static void php_sqlite3_callback_final(sqlite3_context *context) /* {{{ */ php_sqlite3_func *func = (php_sqlite3_func *)sqlite3_user_data(context); php_sqlite3_agg_context *agg_context = (php_sqlite3_agg_context *)sqlite3_aggregate_context(context, sizeof(php_sqlite3_agg_context)); - TSRMLS_FETCH(); agg_context->row_count = 0; sqlite3_do_callback(&func->afini, &func->fini, 0, NULL, context, 1 TSRMLS_CC); @@ -849,8 +845,6 @@ static int php_sqlite3_callback_compare(void *coll, int a_len, const void *a, in zval retval; int ret; - TSRMLS_FETCH(); - collation->fci.fci.size = (sizeof(collation->fci.fci)); collation->fci.fci.function_table = EG(function_table); ZVAL_COPY_VALUE(&collation->fci.fci.function_name, &collation->cmp_func); @@ -1966,7 +1960,6 @@ static int php_sqlite3_authorizer(void *autharg, int access_type, const char *ar case SQLITE_ATTACH: { if (memcmp(arg3, ":memory:", sizeof(":memory:")) && *arg3) { - TSRMLS_FETCH(); #if PHP_API_VERSION < 20100412 if (PG(safe_mode) && (!php_checkuid(arg3, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { diff --git a/ext/standard/assert.c b/ext/standard/assert.c index 65472170e2..efb708d4a9 100644 --- a/ext/standard/assert.c +++ b/ext/standard/assert.c @@ -36,7 +36,7 @@ ZEND_END_MODULE_GLOBALS(assert) ZEND_DECLARE_MODULE_GLOBALS(assert) #ifdef ZTS -#define ASSERTG(v) TSRMG(assert_globals_id, zend_assert_globals *, v) +#define ASSERTG(v) ZEND_TSRMG(assert_globals_id, zend_assert_globals *, v) #else #define ASSERTG(v) (assert_globals.v) #endif diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 5bcd3d3386..147ea0a767 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -4927,8 +4927,6 @@ static void user_tick_function_call(user_tick_function_entry *tick_fe TSRMLS_DC) static void run_user_tick_functions(int tick_count) /* {{{ */ { - TSRMLS_FETCH(); - zend_llist_apply(BG(user_tick_functions), (llist_apply_func_t) user_tick_function_call TSRMLS_CC); } /* }}} */ @@ -4938,7 +4936,6 @@ static int user_tick_function_compare(user_tick_function_entry * tick_fe1, user_ zval *func1 = &tick_fe1->arguments[0]; zval *func2 = &tick_fe2->arguments[0]; int ret; - TSRMLS_FETCH(); if (Z_TYPE_P(func1) == IS_STRING && Z_TYPE_P(func2) == IS_STRING) { ret = (zend_binary_zval_strcmp(func1, func2) == 0); diff --git a/ext/standard/basic_functions.h b/ext/standard/basic_functions.h index eaac7a1609..1c142af842 100644 --- a/ext/standard/basic_functions.h +++ b/ext/standard/basic_functions.h @@ -231,7 +231,7 @@ typedef struct _php_basic_globals { } php_basic_globals; #ifdef ZTS -#define BG(v) TSRMG(basic_globals_id, php_basic_globals *, v) +#define BG(v) ZEND_TSRMG(basic_globals_id, php_basic_globals *, v) PHPAPI extern int basic_globals_id; #else #define BG(v) (basic_globals.v) diff --git a/ext/standard/browscap.c b/ext/standard/browscap.c index a76fb136a3..2ea837ff60 100644 --- a/ext/standard/browscap.c +++ b/ext/standard/browscap.c @@ -46,7 +46,7 @@ ZEND_END_MODULE_GLOBALS(browscap) ZEND_DECLARE_MODULE_GLOBALS(browscap) #ifdef ZTS -#define BROWSCAP_G(v) TSRMG(browscap_globals_id, zend_browscap_globals *, v) +#define BROWSCAP_G(v) ZEND_TSRMG(browscap_globals_id, zend_browscap_globals *, v) #else #define BROWSCAP_G(v) (browscap_globals.v) #endif diff --git a/ext/standard/config.m4 b/ext/standard/config.m4 index 7a5f0effa0..e2ce61f561 100644 --- a/ext/standard/config.m4 +++ b/ext/standard/config.m4 @@ -605,7 +605,8 @@ PHP_NEW_EXTENSION(standard, array.c base64.c basic_functions.c browscap.c crc32. incomplete_class.c url_scanner_ex.c ftp_fopen_wrapper.c \ http_fopen_wrapper.c php_fopen_wrapper.c credits.c css.c \ var_unserializer.c ftok.c sha1.c user_filters.c uuencode.c \ - filters.c proc_open.c streamsfuncs.c http.c password.c) + filters.c proc_open.c streamsfuncs.c http.c password.c,,, + -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_ADD_MAKEFILE_FRAGMENT PHP_INSTALL_HEADERS([ext/standard/]) diff --git a/ext/standard/config.w32 b/ext/standard/config.w32 index 5f24641b4d..e8b50efc7e 100644 --- a/ext/standard/config.w32 +++ b/ext/standard/config.w32 @@ -20,7 +20,8 @@ EXTENSION("standard", "array.c base64.c basic_functions.c browscap.c \ url_scanner_ex.c ftp_fopen_wrapper.c http_fopen_wrapper.c \ php_fopen_wrapper.c credits.c css.c var_unserializer.c ftok.c sha1.c \ user_filters.c uuencode.c filters.c proc_open.c password.c \ - streamsfuncs.c http.c flock_compat.c", false /* never shared */); + streamsfuncs.c http.c flock_compat.c", false /* never shared */, + '/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1'); PHP_INSTALL_HEADERS("", "ext/standard"); if (PHP_MBREGEX != "no") { CHECK_HEADER_ADD_INCLUDE("oniguruma.h", "CFLAGS_STANDARD", PHP_MBREGEX + ";ext\\mbstring\\oniguruma") diff --git a/ext/standard/dir.c b/ext/standard/dir.c index 7b4ab1cd3e..6f4c70ebba 100644 --- a/ext/standard/dir.c +++ b/ext/standard/dir.c @@ -56,7 +56,7 @@ typedef struct { } php_dir_globals; #ifdef ZTS -#define DIRG(v) TSRMG(dir_globals_id, php_dir_globals *, v) +#define DIRG(v) ZEND_TSRMG(dir_globals_id, php_dir_globals *, v) int dir_globals_id; #else #define DIRG(v) (dir_globals.v) diff --git a/ext/standard/exec.c b/ext/standard/exec.c index 28f01b338f..37bdefbb6b 100644 --- a/ext/standard/exec.c +++ b/ext/standard/exec.c @@ -245,8 +245,6 @@ PHPAPI zend_string *php_escape_shell_cmd(char *str) size_t estimate = (2 * l) + 1; zend_string *cmd; - TSRMLS_FETCH(); - cmd = zend_string_alloc(2 * l, 0); for (x = 0, y = 0; x < l; x++) { @@ -337,8 +335,6 @@ PHPAPI zend_string *php_escape_shell_arg(char *str) zend_string *cmd; size_t estimate = (4 * l) + 3; - TSRMLS_FETCH(); - cmd = zend_string_alloc(4 * l + 2, 0); /* worst case */ #ifdef PHP_WIN32 diff --git a/ext/standard/file.h b/ext/standard/file.h index ec60b86e99..78cab4f62f 100644 --- a/ext/standard/file.h +++ b/ext/standard/file.h @@ -132,7 +132,7 @@ typedef struct { } php_file_globals; #ifdef ZTS -#define FG(v) TSRMG(file_globals_id, php_file_globals *, v) +#define FG(v) ZEND_TSRMG(file_globals_id, php_file_globals *, v) extern PHPAPI int file_globals_id; #else #define FG(v) (file_globals.v) diff --git a/ext/standard/incomplete_class.c b/ext/standard/incomplete_class.c index 011407da29..02da0c11b7 100644 --- a/ext/standard/incomplete_class.c +++ b/ext/standard/incomplete_class.c @@ -136,7 +136,6 @@ PHPAPI zend_string *php_lookup_class_name(zval *object) { zval *val; HashTable *object_properties; - TSRMLS_FETCH(); object_properties = Z_OBJPROP_P(object); @@ -153,8 +152,6 @@ PHPAPI zend_string *php_lookup_class_name(zval *object) PHPAPI void php_store_class_name(zval *object, const char *name, uint32_t len) { zval val; - TSRMLS_FETCH(); - ZVAL_STRINGL(&val, name, len); zend_hash_str_update(Z_OBJPROP_P(object), MAGIC_MEMBER, sizeof(MAGIC_MEMBER)-1, &val); diff --git a/ext/standard/info.c b/ext/standard/info.c index bc0ddddcc0..beec7749ca 100644 --- a/ext/standard/info.c +++ b/ext/standard/info.c @@ -65,7 +65,6 @@ static int php_info_print_html_esc(const char *str, int len) /* {{{ */ { int written; zend_string *new_str; - TSRMLS_FETCH(); new_str = php_escape_html_entities((unsigned char *) str, len, 0, ENT_QUOTES, "utf-8" TSRMLS_CC); written = php_output_write(new_str->val, new_str->len TSRMLS_CC); @@ -79,7 +78,6 @@ static int php_info_printf(const char *fmt, ...) /* {{{ */ char *buf; int len, written; va_list argv; - TSRMLS_FETCH(); va_start(argv, fmt); len = vspprintf(&buf, 0, fmt, argv); @@ -93,7 +91,6 @@ static int php_info_printf(const char *fmt, ...) /* {{{ */ static int php_info_print(const char *str) /* {{{ */ { - TSRMLS_FETCH(); return php_output_write(str, strlen(str) TSRMLS_CC); } /* }}} */ diff --git a/ext/standard/math.c b/ext/standard/math.c index 7014e6c938..ee06936369 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -972,12 +972,8 @@ PHPAPI zend_long _php_math_basetolong(zval *arg, int base) if (num > onum) continue; - { - TSRMLS_FETCH(); - - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number '%s' is too big to fit in long", s); - return ZEND_LONG_MAX; - } + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number '%s' is too big to fit in long", s); + return ZEND_LONG_MAX; } return num; diff --git a/ext/standard/php_array.h b/ext/standard/php_array.h index d86121b277..2c9b16463c 100644 --- a/ext/standard/php_array.h +++ b/ext/standard/php_array.h @@ -130,7 +130,7 @@ ZEND_BEGIN_MODULE_GLOBALS(array) ZEND_END_MODULE_GLOBALS(array) #ifdef ZTS -#define ARRAYG(v) TSRMG(array_globals_id, zend_array_globals *, v) +#define ARRAYG(v) ZEND_TSRMG(array_globals_id, zend_array_globals *, v) #else #define ARRAYG(v) (array_globals.v) #endif diff --git a/ext/standard/php_lcg.h b/ext/standard/php_lcg.h index dcc82e9511..81d251c513 100644 --- a/ext/standard/php_lcg.h +++ b/ext/standard/php_lcg.h @@ -35,7 +35,7 @@ PHP_FUNCTION(lcg_value); PHP_MINIT_FUNCTION(lcg); #ifdef ZTS -#define LCG(v) TSRMG(lcg_globals_id, php_lcg_globals *, v) +#define LCG(v) ZEND_TSRMG(lcg_globals_id, php_lcg_globals *, v) #else #define LCG(v) (lcg_globals.v) #endif diff --git a/ext/standard/scanf.c b/ext/standard/scanf.c index 62437831bb..3a6ec012a1 100644 --- a/ext/standard/scanf.c +++ b/ext/standard/scanf.c @@ -316,7 +316,6 @@ PHPAPI int ValidateFormat(char *format, int numVars, int *totalSubs) int staticAssign[STATIC_LIST_SIZE]; int *nassign = staticAssign; int objIndex, xpgSize, nspace = STATIC_LIST_SIZE; - TSRMLS_FETCH(); /* * Initialize an array that records the number of times a variable diff --git a/ext/standard/string.c b/ext/standard/string.c index 706a3eb075..1975f19b3f 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -3228,7 +3228,6 @@ char *php_strerror(int errnum) { extern int sys_nerr; extern char *sys_errlist[]; - TSRMLS_FETCH(); if ((unsigned int) errnum < sys_nerr) { return(sys_errlist[errnum]); diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c index 63ccf52370..b1388f82ea 100644 --- a/ext/tidy/tidy.c +++ b/ext/tidy/tidy.c @@ -487,7 +487,6 @@ static void TIDY_CALL php_tidy_free(void *buf) static void TIDY_CALL php_tidy_panic(ctmbstr msg) { - TSRMLS_FETCH(); php_error_docref(NULL TSRMLS_CC, E_ERROR, "Could not allocate memory for tidy! (Reason: %s)", (char *)msg); } @@ -1144,7 +1143,6 @@ static int php_tidy_output_handler(void **nothing, php_output_context *output_co int status = FAILURE; TidyDoc doc; TidyBuffer inbuf, outbuf, errbuf; - PHP_OUTPUT_TSRMLS(output_context); if (TG(clean_output) && (output_context->op & PHP_OUTPUT_HANDLER_START) && (output_context->op & PHP_OUTPUT_HANDLER_FINAL)) { doc = tidyCreate(); diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c index 705babd885..eb29ce6cb1 100644 --- a/ext/wddx/wddx.c +++ b/ext/wddx/wddx.c @@ -445,7 +445,6 @@ static void php_wddx_serialize_object(wddx_packet *packet, zval *obj) zend_ulong idx; char tmp_buf[WDDX_BUF_LEN]; HashTable *objhash, *sleephash; - TSRMLS_FETCH(); ZVAL_STRING(&fname, "__sleep"); /* @@ -537,7 +536,6 @@ static void php_wddx_serialize_array(wddx_packet *packet, zval *arr) HashTable *target_hash; char tmp_buf[WDDX_BUF_LEN]; zend_ulong ind = 0; - TSRMLS_FETCH(); target_hash = HASH_OF(arr); ZEND_HASH_FOREACH_KEY(target_hash, idx, key) { @@ -666,7 +664,6 @@ static void php_wddx_add_var(wddx_packet *packet, zval *name_var) { zval *val; HashTable *target_hash; - TSRMLS_FETCH(); if (Z_TYPE_P(name_var) == IS_STRING) { zend_array *symbol_table = zend_rebuild_symbol_table(TSRMLS_C); @@ -714,7 +711,7 @@ static void php_wddx_push_element(void *user_data, const XML_Char *name, const X { st_entry ent; wddx_stack *stack = (wddx_stack *)user_data; - TSRMLS_FETCH(); + if (!strcmp((char *)name, EL_PACKET)) { int i; @@ -870,7 +867,6 @@ static void php_wddx_pop_element(void *user_data, const XML_Char *name) HashTable *target_hash; zend_class_entry *pce; zval obj; - TSRMLS_FETCH(); /* OBJECTS_FIXME */ if (stack->top == 0) { @@ -986,7 +982,6 @@ static void php_wddx_process_data(void *user_data, const XML_Char *s, int len) { st_entry *ent; wddx_stack *stack = (wddx_stack *)user_data; - TSRMLS_FETCH(); if (!wddx_stack_is_empty(stack) && !stack->done) { wddx_stack_top(stack, (void**)&ent); diff --git a/ext/xml/xml.c b/ext/xml/xml.c index f1a3442b6d..ecbfae53d2 100644 --- a/ext/xml/xml.c +++ b/ext/xml/xml.c @@ -470,7 +470,6 @@ static void xml_set_handler(zval *handler, zval *data) static void xml_call_handler(xml_parser *parser, zval *handler, zend_function *function_ptr, int argc, zval *argv, zval *retval) { int i; - TSRMLS_FETCH(); ZVAL_UNDEF(retval); if (parser && handler && !EG(exception)) { @@ -786,7 +785,6 @@ void _xml_startElementHandler(void *userData, const XML_Char *name, const XML_Ch parser->ctag = zend_hash_next_index_insert(Z_ARRVAL(parser->data), &tag); } else if (parser->level == (XML_MAXLEVEL + 1)) { - TSRMLS_FETCH(); php_error_docref(NULL TSRMLS_CC, E_WARNING, "Maximum depth exceeded - Results truncated"); } } @@ -928,7 +926,6 @@ void _xml_characterDataHandler(void *userData, const XML_Char *s, int len) zend_hash_next_index_insert(Z_ARRVAL(parser->data), &tag); } else if (parser->level == (XML_MAXLEVEL + 1)) { - TSRMLS_FETCH(); php_error_docref(NULL TSRMLS_CC, E_WARNING, "Maximum depth exceeded - Results truncated"); } } diff --git a/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c b/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c index 13976077be..ce37e5f86e 100644 --- a/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c +++ b/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c @@ -228,7 +228,6 @@ xml_element* XMLRPC_to_xml_element_worker(XMLRPC_VALUE current_vector, XMLRPC_VA break; case xmlrpc_double: { - TSRMLS_FETCH(); elem_val->name = strdup(ELEM_DOUBLE); ap_php_snprintf(buf, BUF_SIZE, "%.*G", (int) EG(precision), XMLRPC_GetValueDouble(node)); simplestring_add(&elem_val->text, buf); diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c index d43a31be11..41b1b958b9 100644 --- a/ext/xmlrpc/xmlrpc-epi-php.c +++ b/ext/xmlrpc/xmlrpc-epi-php.c @@ -865,7 +865,6 @@ static XMLRPC_VALUE php_xmlrpc_callback(XMLRPC_SERVER server, XMLRPC_REQUEST xRe zval* php_function; zval xmlrpc_params; zval callback_params[3]; - TSRMLS_FETCH(); zval_ptr_dtor(&pData->xmlrpc_method); zval_ptr_dtor(&pData->return_data); @@ -906,7 +905,6 @@ static void php_xmlrpc_introspection_callback(XMLRPC_SERVER server, void* data) zval callback_params[1]; zend_string *php_function_name; xmlrpc_callback_data* pData = (xmlrpc_callback_data*)data; - TSRMLS_FETCH(); /* setup data hoojum */ ZVAL_COPY_VALUE(&callback_params[0], &pData->caller_params); @@ -1257,7 +1255,6 @@ XMLRPC_VECTOR_TYPE xmlrpc_str_as_vector_type(const char* str) /* {{{ */ int set_zval_xmlrpc_type(zval* value, XMLRPC_VALUE_TYPE newtype) /* {{{ */ { int bSuccess = FAILURE; - TSRMLS_FETCH(); /* we only really care about strings because they can represent * base64 and datetime. all other types have corresponding php types @@ -1304,7 +1301,6 @@ int set_zval_xmlrpc_type(zval* value, XMLRPC_VALUE_TYPE newtype) /* {{{ */ XMLRPC_VALUE_TYPE get_zval_xmlrpc_type(zval* value, zval* newvalue) /* {{{ */ { XMLRPC_VALUE_TYPE type = xmlrpc_none; - TSRMLS_FETCH(); if (value) { switch (Z_TYPE_P(value)) { diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c index 20af855aa4..bb4060233e 100644 --- a/ext/xsl/xsltprocessor.c +++ b/ext/xsl/xsltprocessor.c @@ -189,8 +189,6 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t xsl_object *intern; zend_string *callable = NULL; - TSRMLS_FETCH(); - if (! zend_is_executing(TSRMLS_C)) { xsltGenericError(xsltGenericErrorContext, "xsltExtFunctionTest: Function called from outside of PHP\n"); diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index 000b96ad8e..4389f688dc 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -91,7 +91,6 @@ static int php_zlib_output_encoding(TSRMLS_D) static int php_zlib_output_handler_ex(php_zlib_context *ctx, php_output_context *output_context) { int flags = Z_SYNC_FLUSH; - PHP_OUTPUT_TSRMLS(output_context); if (output_context->op & PHP_OUTPUT_HANDLER_START) { /* start up */ @@ -177,7 +176,6 @@ static int php_zlib_output_handler_ex(php_zlib_context *ctx, php_output_context static int php_zlib_output_handler(void **handler_context, php_output_context *output_context) { php_zlib_context *ctx = *(php_zlib_context **) handler_context; - PHP_OUTPUT_TSRMLS(output_context); if (!php_zlib_output_encoding(TSRMLS_C)) { /* "Vary: Accept-Encoding" header sent along uncompressed content breaks caching in MSIE, @@ -484,7 +482,6 @@ static PHP_FUNCTION(ob_gzhandler) ZLIBG(ob_gzhandler) = php_zlib_output_handler_context_init(TSRMLS_C); } - TSRMLS_SET_CTX(ctx.tsrm_ls); ctx.op = flags; ctx.in.data = in_str; ctx.in.used = in_len; diff --git a/main/main.c b/main/main.c index d7d7c44f80..3681f28545 100644 --- a/main/main.c +++ b/main/main.c @@ -376,7 +376,6 @@ static PHP_INI_DISP(display_errors_mode) { int mode, tmp_value_length, cgi_or_cli; char *tmp_value; - TSRMLS_FETCH(); if (type == ZEND_INI_DISPLAY_ORIG && ini_entry->modified) { tmp_value = (ini_entry->orig_value ? ini_entry->orig_value->val : NULL ); @@ -723,7 +722,6 @@ PHPAPI size_t php_printf(const char *format, ...) size_t ret; char *buffer; size_t size; - TSRMLS_FETCH(); va_start(args, format); size = vspprintf(&buffer, 0, format, args); @@ -999,7 +997,6 @@ static void php_error_cb(int type, const char *error_filename, const uint error_ { char *buffer; int buffer_len, display; - TSRMLS_FETCH(); buffer_len = vspprintf(&buffer, PG(log_errors_max_len), format, args); @@ -1716,8 +1713,6 @@ int php_request_startup_for_hook(TSRMLS_D) */ void php_request_shutdown_for_exec(void *dummy) { - TSRMLS_FETCH(); - /* used to close fd's in the 3..255 range here, but it's problematic */ shutdown_memory_manager(1, 1 TSRMLS_CC); @@ -1729,8 +1724,6 @@ void php_request_shutdown_for_exec(void *dummy) */ void php_request_shutdown_for_hook(void *dummy) { - TSRMLS_FETCH(); - if (PG(modules_activated)) zend_try { php_call_shutdown_functions(TSRMLS_C); } zend_end_try(); @@ -1782,7 +1775,6 @@ void php_request_shutdown_for_hook(void *dummy) void php_request_shutdown(void *dummy) { zend_bool report_memleaks; - TSRMLS_FETCH(); report_memleaks = PG(report_memleaks); @@ -1918,7 +1910,6 @@ PHPAPI void php_com_initialize(TSRMLS_D) */ static size_t php_output_wrapper(const char *str, size_t str_length) { - TSRMLS_FETCH(); return php_output_write(str, str_length TSRMLS_CC); } /* }}} */ @@ -2017,7 +2008,6 @@ void dummy_invalid_parameter_handler( int len; if (!called) { - TSRMLS_FETCH(); if(PG(windows_show_crt_warning)) { called = 1; if (function) { @@ -2403,7 +2393,6 @@ void php_module_shutdown_for_exec(void) */ int php_module_shutdown_wrapper(sapi_module_struct *sapi_globals) { - TSRMLS_FETCH(); php_module_shutdown(TSRMLS_C); return SUCCESS; } @@ -2617,8 +2606,6 @@ PHPAPI int php_execute_simple_script(zend_file_handle *primary_file, zval *ret T */ PHPAPI void php_handle_aborted_connection(void) { - TSRMLS_FETCH(); - PG(connection_status) = PHP_CONNECTION_ABORTED; php_output_set_status(PHP_OUTPUT_DISABLED TSRMLS_CC); diff --git a/main/network.c b/main/network.c index 9fd1285493..073f1b740a 100644 --- a/main/network.c +++ b/main/network.c @@ -1156,8 +1156,6 @@ PHPAPI int php_set_sock_blocking(php_socket_t socketd, int block TSRMLS_DC) PHPAPI void _php_emit_fd_setsize_warning(int max_fd) { - TSRMLS_FETCH(); - #ifdef PHP_WIN32 php_error_docref(NULL TSRMLS_CC, E_WARNING, "PHP needs to be recompiled with a larger value of FD_SETSIZE.\n" diff --git a/main/output.c b/main/output.c index f44ae178b4..18708789ac 100644 --- a/main/output.c +++ b/main/output.c @@ -160,7 +160,7 @@ PHPAPI void php_output_shutdown(void) PHPAPI int php_output_activate(TSRMLS_D) { #ifdef ZTS - memset((*((void ***) tsrm_ls))[TSRM_UNSHUFFLE_RSRC_ID(output_globals_id)], 0, sizeof(zend_output_globals)); + memset((*((void ***) tsrm_get_ls_cache()))[TSRM_UNSHUFFLE_RSRC_ID(output_globals_id)], 0, sizeof(zend_output_globals)); #else memset(&output_globals, 0, sizeof(zend_output_globals)); #endif @@ -798,7 +798,6 @@ static inline php_output_context *php_output_context_init(php_output_context *co } memset(context, 0, sizeof(php_output_context)); - TSRMLS_SET_CTX(context->tsrm_ls); context->op = op; return context; @@ -929,7 +928,6 @@ static inline php_output_handler_status_t php_output_handler_op(php_output_handl { php_output_handler_status_t status; int original_op = context->op; - PHP_OUTPUT_TSRMLS(context); #if PHP_OUTPUT_DEBUG fprintf(stderr, ">>> op(%d, " @@ -1268,7 +1266,6 @@ static inline int php_output_stack_pop(int flags TSRMLS_DC) static int php_output_handler_compat_func(void **handler_context, php_output_context *output_context) { php_output_handler_func_t func = *(php_output_handler_func_t *) handler_context; - PHP_OUTPUT_TSRMLS(output_context); if (func) { char *out_str = NULL; diff --git a/main/php_globals.h b/main/php_globals.h index a60efe69de..76933d8f07 100644 --- a/main/php_globals.h +++ b/main/php_globals.h @@ -26,7 +26,7 @@ typedef struct _php_core_globals php_core_globals; #ifdef ZTS -# define PG(v) TSRMG(core_globals_id, php_core_globals *, v) +# define PG(v) ZEND_TSRMG(core_globals_id, php_core_globals *, v) extern PHPAPI int core_globals_id; #else # define PG(v) (core_globals.v) diff --git a/main/php_ini.c b/main/php_ini.c index c90dc9f29f..d90ee9dedb 100644 --- a/main/php_ini.c +++ b/main/php_ini.c @@ -170,7 +170,6 @@ static int php_ini_available(zval *el, void *arg TSRMLS_DC) PHPAPI void display_ini_entries(zend_module_entry *module) { int module_number, module_number_available; - TSRMLS_FETCH(); if (module) { module_number = module->module_number; diff --git a/main/php_output.h b/main/php_output.h index 02b2b85d13..69a45878cd 100644 --- a/main/php_output.h +++ b/main/php_output.h @@ -102,13 +102,8 @@ typedef struct _php_output_context { int op; php_output_buffer in; php_output_buffer out; -#ifdef ZTS - void ***tsrm_ls; -#endif } php_output_context; -#define PHP_OUTPUT_TSRMLS(ctx) TSRMLS_FETCH_FROM_CTX((ctx)->tsrm_ls) - /* old-style, stateless callback */ typedef void (*php_output_handler_func_t)(char *output, uint output_len, char **handled_output, uint *handled_output_len, int mode TSRMLS_DC); /* new-style, opaque context callback */ @@ -153,7 +148,7 @@ ZEND_END_MODULE_GLOBALS(output) /* there should not be a need to use OG() from outside of output.c */ #ifdef ZTS -# define OG(v) TSRMG(output_globals_id, zend_output_globals *, v) +# define OG(v) ZEND_TSRMG(output_globals_id, zend_output_globals *, v) #else # define OG(v) (output_globals.v) #endif diff --git a/main/snprintf.c b/main/snprintf.c index 062ccc4eee..d323391808 100644 --- a/main/snprintf.c +++ b/main/snprintf.c @@ -787,7 +787,6 @@ static int format_converter(register buffy * odp, const char *fmt, va_list ap) / */ switch (*fmt) { case 'Z': { - TSRMLS_FETCH(); zvp = (zval*) va_arg(ap, zval*); free_zcopy = zend_make_printable_zval(zvp, &zcopy TSRMLS_CC); if (free_zcopy) { diff --git a/main/spprintf.c b/main/spprintf.c index cf730dd964..903c901abe 100644 --- a/main/spprintf.c +++ b/main/spprintf.c @@ -401,7 +401,6 @@ static void xbuf_format_converter(void *xbuf, zend_bool is_char, const char *fmt */ switch (*fmt) { case 'Z': { - TSRMLS_FETCH(); zvp = (zval*) va_arg(ap, zval*); free_zcopy = zend_make_printable_zval(zvp, &zcopy TSRMLS_CC); if (free_zcopy) { diff --git a/main/streams/cast.c b/main/streams/cast.c index 3291a9ca8f..dcb036aa4b 100644 --- a/main/streams/cast.c +++ b/main/streams/cast.c @@ -63,7 +63,6 @@ FILE *fopencookie(void *cookie, const char *mode, COOKIE_IO_FUNCTIONS_T *funcs) static int stream_cookie_reader(void *cookie, char *buffer, int size) { int ret; - TSRMLS_FETCH(); ret = php_stream_read((php_stream*)cookie, buffer, size); return ret; @@ -71,22 +70,17 @@ static int stream_cookie_reader(void *cookie, char *buffer, int size) static int stream_cookie_writer(void *cookie, const char *buffer, int size) { - TSRMLS_FETCH(); - return php_stream_write((php_stream *)cookie, (char *)buffer, size); } static PHP_FPOS_T stream_cookie_seeker(void *cookie, zend_off_t position, int whence) { - TSRMLS_FETCH(); - return (PHP_FPOS_T)php_stream_seek((php_stream *)cookie, position, whence); } static int stream_cookie_closer(void *cookie) { php_stream *stream = (php_stream*)cookie; - TSRMLS_FETCH(); /* prevent recursion */ stream->fclose_stdiocast = PHP_STREAM_FCLOSE_NONE; @@ -96,7 +90,6 @@ static int stream_cookie_closer(void *cookie) static ssize_t stream_cookie_reader(void *cookie, char *buffer, size_t size) { ssize_t ret; - TSRMLS_FETCH(); ret = php_stream_read(((php_stream *)cookie), buffer, size); return ret; @@ -104,16 +97,12 @@ static ssize_t stream_cookie_reader(void *cookie, char *buffer, size_t size) static ssize_t stream_cookie_writer(void *cookie, const char *buffer, size_t size) { - TSRMLS_FETCH(); - return php_stream_write(((php_stream *)cookie), (char *)buffer, size); } # ifdef COOKIE_SEEKER_USES_OFF64_T static int stream_cookie_seeker(void *cookie, __off64_t *position, int whence) { - TSRMLS_FETCH(); - *position = php_stream_seek((php_stream *)cookie, (zend_off_t)*position, whence); if (*position == -1) { @@ -124,8 +113,6 @@ static int stream_cookie_seeker(void *cookie, __off64_t *position, int whence) # else static int stream_cookie_seeker(void *cookie, zend_off_t position, int whence) { - TSRMLS_FETCH(); - return php_stream_seek((php_stream *)cookie, position, whence); } # endif @@ -133,7 +120,6 @@ static int stream_cookie_seeker(void *cookie, zend_off_t position, int whence) static int stream_cookie_closer(void *cookie) { php_stream *stream = (php_stream*)cookie; - TSRMLS_FETCH(); /* prevent recursion */ stream->fclose_stdiocast = PHP_STREAM_FCLOSE_NONE; diff --git a/sapi/apache2handler/sapi_apache2.c b/sapi/apache2handler/sapi_apache2.c index fe200304fd..5ccc774e83 100644 --- a/sapi/apache2handler/sapi_apache2.c +++ b/sapi/apache2handler/sapi_apache2.c @@ -403,7 +403,6 @@ static apr_status_t php_apache_child_shutdown(void *tmp) static void php_apache_add_version(apr_pool_t *p) { - TSRMLS_FETCH(); if (PG(expose_php)) { ap_add_version_component(p, "PHP/" PHP_VERSION); } diff --git a/sapi/cli/php_cli.c b/sapi/cli/php_cli.c index 04cbdeb8f1..19e56284e3 100644 --- a/sapi/cli/php_cli.c +++ b/sapi/cli/php_cli.c @@ -1235,7 +1235,7 @@ int main(int argc, char *argv[]) #ifdef ZTS tsrm_startup(1, 1, 0, NULL); - tsrm_ls = ts_resource(0); + tsrm_ls = ts_resource_ex(0, NULL); #endif #ifdef PHP_WIN32 diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index 909e91e3fa..04a82e812d 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -1188,11 +1188,8 @@ static void php_cli_server_logf(const char *format TSRMLS_DC, ...) /* {{{ */ { char *buf = NULL; va_list ap; -#ifdef ZTS - va_start(ap, tsrm_ls); -#else + va_start(ap, format); -#endif vspprintf(&buf, 0, format, ap); va_end(ap); @@ -2353,9 +2350,6 @@ static int php_cli_server_send_event(php_cli_server *server, php_cli_server_clie /* }}} */ typedef struct php_cli_server_do_event_for_each_fd_callback_params { -#ifdef ZTS - void ***tsrm_ls; -#endif php_cli_server *server; int(*rhandler)(php_cli_server*, php_cli_server_client* TSRMLS_DC); int(*whandler)(php_cli_server*, php_cli_server_client* TSRMLS_DC); @@ -2364,9 +2358,7 @@ typedef struct php_cli_server_do_event_for_each_fd_callback_params { static int php_cli_server_do_event_for_each_fd_callback(void *_params, php_socket_t fd, int event) /* {{{ */ { php_cli_server_do_event_for_each_fd_callback_params *params = _params; -#ifdef ZTS - void ***tsrm_ls = params->tsrm_ls; -#endif + php_cli_server *server = params->server; if (server->server_sock == fd) { php_cli_server_client *client = NULL; @@ -2418,9 +2410,6 @@ static int php_cli_server_do_event_for_each_fd_callback(void *_params, php_socke static void php_cli_server_do_event_for_each_fd(php_cli_server *server, int(*rhandler)(php_cli_server*, php_cli_server_client* TSRMLS_DC), int(*whandler)(php_cli_server*, php_cli_server_client* TSRMLS_DC) TSRMLS_DC) /* {{{ */ { php_cli_server_do_event_for_each_fd_callback_params params = { -#ifdef ZTS - tsrm_ls, -#endif server, rhandler, whandler diff --git a/win32/build/config.w32 b/win32/build/config.w32 index 358ff4e0ce..54fadc09b3 100644 --- a/win32/build/config.w32 +++ b/win32/build/config.w32 @@ -368,6 +368,8 @@ ADD_SOURCES("Zend", "zend_language_parser.c zend_language_scanner.c \ zend_float.c zend_string.c zend_generators.c zend_virtual_cwd.c zend_ast.c \ zend_inheritance.c"); +ADD_FLAG("CFLAGS_BD_ZEND", "/D ZEND_ENABLE_STATIC_TSRMLS_CACHE=1"); + if (VCVERS == 1200) { AC_DEFINE('ZEND_DVAL_TO_LVAL_CAST_OK', 1); } diff --git a/win32/php_win32_globals.h b/win32/php_win32_globals.h index 42f5ec9411..4029117b8f 100644 --- a/win32/php_win32_globals.h +++ b/win32/php_win32_globals.h @@ -26,7 +26,7 @@ typedef struct _php_win32_core_globals php_win32_core_globals; #ifdef ZTS -# define PW32G(v) TSRMG(php_win32_core_globals_id, php_win32_core_globals*, v) +# define PW32G(v) ZEND_TSRMG(php_win32_core_globals_id, php_win32_core_globals*, v) extern PHPAPI int php_win32_core_globals_id; #else # define PW32G(v) (the_php_win32_core_globals.v) diff --git a/win32/readdir.c b/win32/readdir.c index 0edd5764d4..2aba14ddf5 100644 --- a/win32/readdir.c +++ b/win32/readdir.c @@ -26,7 +26,6 @@ DIR *opendir(const char *dir) HANDLE handle; int index; char resolved_path_buff[MAXPATHLEN]; - TSRMLS_FETCH(); if (!VCWD_REALPATH(dir, resolved_path_buff)) { return NULL; diff --git a/win32/wsyslog.c b/win32/wsyslog.c index 75c5ef58e5..89f98e5224 100644 --- a/win32/wsyslog.c +++ b/win32/wsyslog.c @@ -61,7 +61,6 @@ void closelog(void) { - TSRMLS_FETCH(); if (PW32G(log_source)) { DeregisterEventSource(PW32G(log_source)); PW32G(log_source) = NULL; @@ -85,7 +84,6 @@ void syslog(int priority, const char *message, ...) unsigned short etype; char *tmp = NULL; DWORD evid; - TSRMLS_FETCH(); /* default event source */ if (!PW32G(log_source)) @@ -123,8 +121,6 @@ void syslog(int priority, const char *message, ...) void openlog(const char *ident, int logopt, int facility) { - TSRMLS_FETCH(); - if (PW32G(log_source)) { closelog(); } |