version 1.1.1.1, 2012/02/21 23:47:52
|
version 1.1.1.2, 2012/05/29 12:34:36
|
Line 2
|
Line 2
|
|
|
ZEND_API void {%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC) |
ZEND_API void {%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC) |
{ |
{ |
|
DCL_OPLINE |
zend_execute_data *execute_data; |
zend_execute_data *execute_data; |
zend_bool nested = 0; |
zend_bool nested = 0; |
zend_bool original_in_execution = EG(in_execution); |
zend_bool original_in_execution = EG(in_execution); |
Line 36 zend_vm_enter:
|
Line 37 zend_vm_enter:
|
EX(nested) = nested; |
EX(nested) = nested; |
nested = 1; |
nested = 1; |
|
|
if (op_array->start_op) { | LOAD_REGS(); |
ZEND_VM_SET_OPCODE(op_array->start_op); | |
} else { | if (!op_array->run_time_cache && op_array->last_cache_slot) { |
ZEND_VM_SET_OPCODE(op_array->opcodes); | op_array->run_time_cache = ecalloc(op_array->last_cache_slot, sizeof(void*)); |
} |
} |
|
|
if (op_array->this_var != -1 && EG(This)) { |
if (op_array->this_var != -1 && EG(This)) { |
Z_ADDREF_P(EG(This)); /* For $this pointer */ |
Z_ADDREF_P(EG(This)); /* For $this pointer */ |
if (!EG(active_symbol_table)) { |
if (!EG(active_symbol_table)) { |
EX(CVs)[op_array->this_var] = (zval**)EX(CVs) + (op_array->last_var + op_array->this_var); | EX_CV(op_array->this_var) = (zval**)EX_CVs() + (op_array->last_var + op_array->this_var); |
*EX(CVs)[op_array->this_var] = EG(This); | *EX_CV(op_array->this_var) = EG(This); |
} else { |
} else { |
if (zend_hash_add(EG(active_symbol_table), "this", sizeof("this"), &EG(This), sizeof(zval *), (void**)&EX(CVs)[op_array->this_var])==FAILURE) { | if (zend_hash_add(EG(active_symbol_table), "this", sizeof("this"), &EG(This), sizeof(zval *), (void**)&EX_CV(op_array->this_var))==FAILURE) { |
Z_DELREF_P(EG(This)); |
Z_DELREF_P(EG(This)); |
} |
} |
} |
} |
} |
} |
|
|
|
EX(opline) = UNEXPECTED((op_array->fn_flags & ZEND_ACC_INTERACTIVE) != 0) && EG(start_op) ? EG(start_op) : op_array->opcodes; |
EG(opline_ptr) = &EX(opline); |
EG(opline_ptr) = &EX(opline); |
|
LOAD_OPLINE(); |
|
|
EX(function_state).function = (zend_function *) op_array; |
EX(function_state).function = (zend_function *) op_array; |
EX(function_state).arguments = NULL; |
EX(function_state).arguments = NULL; |
| |
while (1) { |
while (1) { |
{%ZEND_VM_CONTINUE_LABEL%} |
{%ZEND_VM_CONTINUE_LABEL%} |
#ifdef ZEND_WIN32 |
#ifdef ZEND_WIN32 |