Last active
December 23, 2015 01:49
-
-
Save nikic/6562623 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c | |
index 63ecbe4..c79a551 100644 | |
--- a/Zend/zend_execute.c | |
+++ b/Zend/zend_execute.c | |
@@ -94,7 +94,7 @@ static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC) | |
} | |
#undef zval_ptr_dtor | |
-#define zval_ptr_dtor(pzv) i_zval_ptr_dtor(*(pzv) ZEND_FILE_LINE_CC) | |
+#define zval_ptr_dtor(pzv) i_zval_ptr_dtor(*(pzv) ZEND_FILE_LINE_CC TSRMLS_CC) | |
#define PZVAL_UNLOCK(z, f) zend_pzval_unlock_func(z, f, 1 TSRMLS_CC) | |
#define PZVAL_UNLOCK_EX(z, f, u) zend_pzval_unlock_func(z, f, u TSRMLS_CC) | |
@@ -1500,7 +1500,7 @@ void zend_clean_and_cache_symbol_table(HashTable *symbol_table TSRMLS_DC) /* {{{ | |
} | |
/* }}} */ | |
-static zend_always_inline void i_free_compiled_variables(zend_execute_data *execute_data) /* {{{ */ | |
+static zend_always_inline void i_free_compiled_variables(zend_execute_data *execute_data TSRMLS_DC) /* {{{ */ | |
{ | |
zval ***cv = EX_CV_NUM(execute_data, 0); | |
zval ***end = cv + EX(op_array)->last_var; | |
@@ -1513,9 +1513,9 @@ static zend_always_inline void i_free_compiled_variables(zend_execute_data *exec | |
} | |
/* }}} */ | |
-void zend_free_compiled_variables(zend_execute_data *execute_data) /* {{{ */ | |
+void zend_free_compiled_variables(zend_execute_data *execute_data TSRMLS_DC) /* {{{ */ | |
{ | |
- i_free_compiled_variables(execute_data); | |
+ i_free_compiled_variables(execute_data TSRMLS_CC); | |
} | |
/* }}} */ | |
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h | |
index ff07587..b68a82e 100644 | |
--- a/Zend/zend_execute.h | |
+++ b/Zend/zend_execute.h | |
@@ -71,18 +71,14 @@ ZEND_API int zend_eval_stringl_ex(char *str, int str_len, zval *retval_ptr, char | |
ZEND_API char * zend_verify_arg_class_kind(const zend_arg_info *cur_arg_info, ulong fetch_type, const char **class_name, zend_class_entry **pce TSRMLS_DC); | |
ZEND_API int zend_verify_arg_error(int error_type, const zend_function *zf, zend_uint arg_num, const char *need_msg, const char *need_kind, const char *given_msg, const char *given_kind TSRMLS_DC); | |
-static zend_always_inline void i_zval_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC) | |
+static zend_always_inline void i_zval_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC TSRMLS_DC) | |
{ | |
if (!Z_DELREF_P(zval_ptr)) { | |
- TSRMLS_FETCH(); | |
- | |
ZEND_ASSERT(zval_ptr != &EG(uninitialized_zval)); | |
GC_REMOVE_ZVAL_FROM_BUFFER(zval_ptr); | |
zval_dtor(zval_ptr); | |
efree_rel(zval_ptr); | |
} else { | |
- TSRMLS_FETCH(); | |
- | |
if (Z_REFCOUNT_P(zval_ptr) == 1) { | |
Z_UNSET_ISREF_P(zval_ptr); | |
} | |
@@ -295,7 +291,7 @@ static zend_always_inline void zend_vm_stack_clear_multiple(int nested TSRMLS_DC | |
while (p != end) { | |
zval *q = (zval *) *(--p); | |
*p = NULL; | |
- i_zval_ptr_dtor(q ZEND_FILE_LINE_CC); | |
+ i_zval_ptr_dtor(q ZEND_FILE_LINE_CC TSRMLS_CC); | |
} | |
if (nested) { | |
EG(argument_stack)->top = p; | |
@@ -394,7 +390,7 @@ ZEND_API zval **zend_get_zval_ptr_ptr(int op_type, const znode_op *node, const z | |
ZEND_API int zend_do_fcall(ZEND_OPCODE_HANDLER_ARGS); | |
void zend_clean_and_cache_symbol_table(HashTable *symbol_table TSRMLS_DC); | |
-void zend_free_compiled_variables(zend_execute_data *execute_data); | |
+void zend_free_compiled_variables(zend_execute_data *execute_data TSRMLS_DC); | |
#define CACHED_PTR(num) \ | |
EG(active_op_array)->run_time_cache[(num)] | |
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c | |
index d65308f..779e6d8 100644 | |
--- a/Zend/zend_execute_API.c | |
+++ b/Zend/zend_execute_API.c | |
@@ -423,7 +423,8 @@ ZEND_API zend_bool zend_is_executing(TSRMLS_D) /* {{{ */ | |
ZEND_API void _zval_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC) /* {{{ */ | |
{ | |
- i_zval_ptr_dtor(*zval_ptr ZEND_FILE_LINE_RELAY_CC); | |
+ TSRMLS_FETCH(); | |
+ i_zval_ptr_dtor(*zval_ptr ZEND_FILE_LINE_RELAY_CC TSRMLS_CC); | |
} | |
/* }}} */ | |
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c | |
index c6b211a..c55dc67 100644 | |
--- a/Zend/zend_generators.c | |
+++ b/Zend/zend_generators.c | |
@@ -46,7 +46,7 @@ ZEND_API void zend_generator_close(zend_generator *generator, zend_bool finished | |
zend_op_array *op_array = execute_data->op_array; | |
if (!execute_data->symbol_table) { | |
- zend_free_compiled_variables(execute_data); | |
+ zend_free_compiled_variables(execute_data TSRMLS_CC); | |
} else { | |
zend_clean_and_cache_symbol_table(execute_data->symbol_table TSRMLS_CC); | |
} | |
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h | |
index d95a3dc..4621b47 100644 | |
--- a/Zend/zend_vm_def.h | |
+++ b/Zend/zend_vm_def.h | |
@@ -1833,7 +1833,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) | |
EG(current_execute_data) = EX(prev_execute_data); | |
EG(opline_ptr) = NULL; | |
if (!EG(active_symbol_table)) { | |
- i_free_compiled_variables(execute_data); | |
+ i_free_compiled_variables(execute_data TSRMLS_CC); | |
} | |
zend_vm_stack_free((char*)execute_data - (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T) TSRMLS_CC); | |
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h | |
index ac62b29..677cabe 100644 | |
--- a/Zend/zend_vm_execute.h | |
+++ b/Zend/zend_vm_execute.h | |
@@ -396,7 +396,7 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) | |
EG(current_execute_data) = EX(prev_execute_data); | |
EG(opline_ptr) = NULL; | |
if (!EG(active_symbol_table)) { | |
- i_free_compiled_variables(execute_data); | |
+ i_free_compiled_variables(execute_data TSRMLS_CC); | |
} | |
zend_vm_stack_free((char*)execute_data - (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T) TSRMLS_CC); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment