]> granicus.if.org Git - php/commitdiff
code cleanup
authorDmitry Stogov <dmitry@zend.com>
Tue, 8 Jul 2014 09:24:23 +0000 (13:24 +0400)
committerDmitry Stogov <dmitry@zend.com>
Tue, 8 Jul 2014 09:24:23 +0000 (13:24 +0400)
Zend/zend_builtin_functions.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 5450a89c09d2ac84fc5e9fcff30d8316e7a32156..51265ecb40c707cc0e747d8a818ca5b00ec51c0c 100644 (file)
@@ -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();
 
index 67fa0f7956bfd81105b6cd2f2fed40ed7d227eeb..8ca796810992985ef1d7977cd6e7e6daadcf4f0e 100644 (file)
@@ -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);
                                }
index 52b1b794abdfbb6d0e80318aade7727721537f0d..797c4e0943e03e3054e71dbe394296ee54e79ae8 100644 (file)
@@ -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);
                                }