com php-src: code cleanup: Zend/zend_builtin_functions.c Zend/zend_vm_def.h Zend/zend_vm_execute.h
| From: | Dmitry Stogov | Date: | Tue, 08 Jul 2014 09:24:23 +0000 |
| Subject: | com php-src: code cleanup: Zend/zend_builtin_functions.c Zend/zend_vm_def.h Zend/zend_vm_execute.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-79332@lists.php.net to get a copy of this message | ||
Commit: 0abd6262692eeb8736d70db5a882f9e796ce4374
Author: Dmitry Stogov <dmitry@zend.com> Tue, 8 Jul 2014 13:24:23 +0400
Parents: 73679bf6dbaf296153d7bf71829ab098e3eea844
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=0abd6262692eeb8736d70db5a882f9e796ce4374
Log:
code cleanup
Changed paths:
M Zend/zend_builtin_functions.c
M Zend/zend_vm_def.h
M Zend/zend_vm_execute.h
Diff:
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index 5450a89..51265ec 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -1092,8 +1092,7 @@ ZEND_FUNCTION(get_class_methods)
/* Do not display old-style inherited constructors */
if (!key) {
-// TODO: we have to duplicate it, becaise it may be stored in opcache SHM ???
- ZVAL_STR(&method_name, STR_DUP(mptr->common.function_name, 0));
+ ZVAL_STR(&method_name, STR_COPY(mptr->common.function_name));
zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &method_name);
} else if ((mptr->common.fn_flags & ZEND_ACC_CTOR) == 0 ||
mptr->common.scope == ce ||
@@ -1106,8 +1105,7 @@ ZEND_FUNCTION(get_class_methods)
ZVAL_STR(&method_name, STR_COPY(zend_find_alias_name(mptr->common.scope, key)));
zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &method_name);
} else {
-// TODO: we have to duplicate it, becaise it may be stored in opcache SHM ???
- ZVAL_STR(&method_name, STR_DUP(mptr->common.function_name, 0));
+ ZVAL_STR(&method_name, STR_COPY(mptr->common.function_name));
zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &method_name);
}
}
@@ -2303,8 +2301,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last,
int
break;
}
if (prev->func && ZEND_USER_CODE(prev->func->common.type)) {
-// TODO: we have to duplicate it, becaise it may be stored in opcache SHM ???
- add_assoc_str_ex(&stack_frame, "file", sizeof("file")-1,
STR_DUP(prev->func->op_array.filename, 0));
+ add_assoc_str_ex(&stack_frame, "file", sizeof("file")-1,
STR_COPY(prev->func->op_array.filename));
add_assoc_long_ex(&stack_frame, "line", sizeof("line")-1,
prev->opline->lineno);
break;
}
@@ -2508,8 +2505,7 @@ ZEND_FUNCTION(get_extension_funcs)
array_init(return_value);
array = 1;
}
-// TODO: we have to duplicate it, becaise it may be stored in opcache SHM ???
- add_next_index_str(return_value, STR_DUP(zif->common.function_name, 0));
+ add_next_index_str(return_value, STR_COPY(zif->common.function_name));
}
} ZEND_HASH_FOREACH_END();
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 67fa0f7..8ca7968 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -1781,8 +1781,8 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_CLOSURE) != 0) &&
EX(func)->op_array.prototype) {
zval_ptr_dtor((zval*)EX(func)->op_array.prototype);
}
- EG(current_execute_data) = EX(prev_execute_data);
zend_vm_stack_free_extra_args(execute_data TSRMLS_CC);
+ EG(current_execute_data) = EX(prev_execute_data);
zend_vm_stack_free_call_frame(execute_data TSRMLS_CC);
execute_data = EG(current_execute_data);
@@ -1840,6 +1840,9 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
if (UNEXPECTED(EX(symbol_table) != NULL)) {
zend_clean_and_cache_symbol_table(EX(symbol_table) TSRMLS_CC);
}
+ if ((EX(func)->op_array.fn_flags & ZEND_ACC_CLOSURE) &&
EX(func)->op_array.prototype) {
+ zval_ptr_dtor((zval*)EX(func)->op_array.prototype);
+ }
zend_vm_stack_free_extra_args(execute_data TSRMLS_CC);
} else /* if (frame_kind == VM_FRAME_TOP_CODE) */ {
zend_array *symbol_table = EX(symbol_table);
@@ -1857,9 +1860,6 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
old_execute_data = old_execute_data->prev_execute_data;
}
}
- if ((EX(func)->op_array.fn_flags & ZEND_ACC_CLOSURE) &&
EX(func)->op_array.prototype) {
- zval_ptr_dtor((zval*)EX(func)->op_array.prototype);
- }
EG(current_execute_data) = EX(prev_execute_data);
zend_vm_stack_free_call_frame(execute_data TSRMLS_CC);
@@ -2698,7 +2698,6 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY)
}
} else { /* ZEND_OVERLOADED_FUNCTION */
Z_OBJ(EG(This)) = call->object;
-//??? EG(scope) = NULL;
EG(scope) = fbc->common.scope;
ZVAL_NULL(EX_VAR(opline->result.var));
@@ -3170,8 +3169,7 @@ ZEND_VM_C_LABEL(send_again):
ZVAL_DUP(top, arg);
}
} else if (Z_ISREF_P(arg)) {
-//TODO: change into ZVAL_COPY()???
- ZVAL_DUP(top, Z_REFVAL_P(arg));
+ ZVAL_COPY(top, Z_REFVAL_P(arg));
} else {
ZVAL_COPY(top, arg);
}
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 52b1b79..797c4e0 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -400,8 +400,8 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_CLOSURE) != 0) &&
EX(func)->op_array.prototype) {
zval_ptr_dtor((zval*)EX(func)->op_array.prototype);
}
- EG(current_execute_data) = EX(prev_execute_data);
zend_vm_stack_free_extra_args(execute_data TSRMLS_CC);
+ EG(current_execute_data) = EX(prev_execute_data);
zend_vm_stack_free_call_frame(execute_data TSRMLS_CC);
execute_data = EG(current_execute_data);
@@ -459,6 +459,9 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
if (UNEXPECTED(EX(symbol_table) != NULL)) {
zend_clean_and_cache_symbol_table(EX(symbol_table) TSRMLS_CC);
}
+ if ((EX(func)->op_array.fn_flags & ZEND_ACC_CLOSURE) &&
EX(func)->op_array.prototype) {
+ zval_ptr_dtor((zval*)EX(func)->op_array.prototype);
+ }
zend_vm_stack_free_extra_args(execute_data TSRMLS_CC);
} else /* if (frame_kind == VM_FRAME_TOP_CODE) */ {
zend_array *symbol_table = EX(symbol_table);
@@ -476,9 +479,6 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
old_execute_data = old_execute_data->prev_execute_data;
}
}
- if ((EX(func)->op_array.fn_flags & ZEND_ACC_CLOSURE) &&
EX(func)->op_array.prototype) {
- zval_ptr_dtor((zval*)EX(func)->op_array.prototype);
- }
EG(current_execute_data) = EX(prev_execute_data);
zend_vm_stack_free_call_frame(execute_data TSRMLS_CC);
@@ -646,7 +646,6 @@ static int ZEND_FASTCALL ZEND_DO_FCALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
} else { /* ZEND_OVERLOADED_FUNCTION */
Z_OBJ(EG(This)) = call->object;
-//??? EG(scope) = NULL;
EG(scope) = fbc->common.scope;
ZVAL_NULL(EX_VAR(opline->result.var));
@@ -777,8 +776,7 @@ send_again:
ZVAL_DUP(top, arg);
}
} else if (Z_ISREF_P(arg)) {
-//TODO: change into ZVAL_COPY()???
- ZVAL_DUP(top, Z_REFVAL_P(arg));
+ ZVAL_COPY(top, Z_REFVAL_P(arg));
} else {
ZVAL_COPY(top, arg);
}