version 1.1.1.3, 2013/07/22 01:32:16
|
version 1.1.1.4, 2013/10/14 08:02:49
|
Line 2229 ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CON
|
Line 2229 ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CON
|
ce = CACHED_PTR(opline->op1.literal->cache_slot); |
ce = CACHED_PTR(opline->op1.literal->cache_slot); |
} else { |
} else { |
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC); |
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC); |
|
if (UNEXPECTED(EG(exception) != NULL)) { |
|
HANDLE_EXCEPTION(); |
|
} |
if (UNEXPECTED(ce == NULL)) { |
if (UNEXPECTED(ce == NULL)) { |
CHECK_EXCEPTION(); | zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv)); |
ZEND_VM_NEXT_OPCODE(); | |
} |
} |
CACHE_PTR(opline->op1.literal->cache_slot, ce); |
CACHE_PTR(opline->op1.literal->cache_slot, ce); |
} |
} |
Line 2414 ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONS
|
Line 2416 ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONS
|
|
|
if (Z_TYPE_PP(obj) == IS_STRING) { |
if (Z_TYPE_PP(obj) == IS_STRING) { |
ce = zend_fetch_class_by_name(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), NULL, 0 TSRMLS_CC); |
ce = zend_fetch_class_by_name(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), NULL, 0 TSRMLS_CC); |
|
if (UNEXPECTED(EG(exception) != NULL)) { |
|
HANDLE_EXCEPTION(); |
|
} |
if (UNEXPECTED(ce == NULL)) { |
if (UNEXPECTED(ce == NULL)) { |
CHECK_EXCEPTION(); | zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_PP(obj)); |
ZEND_VM_NEXT_OPCODE(); | |
} |
} |
EX(called_scope) = ce; |
EX(called_scope) = ce; |
EX(object) = NULL; |
EX(object) = NULL; |
Line 2906 ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR
|
Line 2910 ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR
|
} else if (EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) { |
} else if (EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) { |
zend_error(E_NOTICE, "Only variable references should be returned by reference"); |
zend_error(E_NOTICE, "Only variable references should be returned by reference"); |
if (EG(return_value_ptr_ptr)) { |
if (EG(return_value_ptr_ptr)) { |
retval_ptr = *retval_ptr_ptr; | zval *ret; |
*EG(return_value_ptr_ptr) = retval_ptr; | |
Z_ADDREF_P(retval_ptr); | ALLOC_ZVAL(ret); |
| INIT_PZVAL_COPY(ret, *retval_ptr_ptr); |
| zval_copy_ctor(ret); |
| *EG(return_value_ptr_ptr) = ret; |
} |
} |
break; |
break; |
} |
} |
Line 2977 ZEND_VM_HANDLER(107, ZEND_CATCH, CONST, CV)
|
Line 2984 ZEND_VM_HANDLER(107, ZEND_CATCH, CONST, CV)
|
|
|
#ifdef HAVE_DTRACE |
#ifdef HAVE_DTRACE |
if (DTRACE_EXCEPTION_CAUGHT_ENABLED()) { |
if (DTRACE_EXCEPTION_CAUGHT_ENABLED()) { |
DTRACE_EXCEPTION_CAUGHT(ce->name); | DTRACE_EXCEPTION_CAUGHT((char *)ce->name); |
} |
} |
#endif /* HAVE_DTRACE */ |
#endif /* HAVE_DTRACE */ |
|
|
Line 3268 ZEND_VM_HANDLER(50, ZEND_BRK, ANY, CONST)
|
Line 3275 ZEND_VM_HANDLER(50, ZEND_BRK, ANY, CONST)
|
SAVE_OPLINE(); |
SAVE_OPLINE(); |
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num, |
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num, |
EX(op_array), EX_Ts() TSRMLS_CC); |
EX(op_array), EX_Ts() TSRMLS_CC); |
FREE_OP2(); |
|
ZEND_VM_JMP(EX(op_array)->opcodes + el->brk); |
ZEND_VM_JMP(EX(op_array)->opcodes + el->brk); |
} |
} |
|
|
Line 3280 ZEND_VM_HANDLER(51, ZEND_CONT, ANY, CONST)
|
Line 3286 ZEND_VM_HANDLER(51, ZEND_CONT, ANY, CONST)
|
SAVE_OPLINE(); |
SAVE_OPLINE(); |
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num, |
el = zend_brk_cont(Z_LVAL_P(opline->op2.zv), opline->op1.opline_num, |
EX(op_array), EX_Ts() TSRMLS_CC); |
EX(op_array), EX_Ts() TSRMLS_CC); |
FREE_OP2(); |
|
ZEND_VM_JMP(EX(op_array)->opcodes + el->cont); |
ZEND_VM_JMP(EX(op_array)->opcodes + el->cont); |
} |
} |
|
|
Line 3500 ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNU
|
Line 3505 ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNU
|
ce = CACHED_PTR(opline->op1.literal->cache_slot); |
ce = CACHED_PTR(opline->op1.literal->cache_slot); |
} else { |
} else { |
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC); |
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op1.zv), Z_STRLEN_P(opline->op1.zv), opline->op1.literal + 1, opline->extended_value TSRMLS_CC); |
|
if (UNEXPECTED(EG(exception) != NULL)) { |
|
HANDLE_EXCEPTION(); |
|
} |
if (UNEXPECTED(ce == NULL)) { |
if (UNEXPECTED(ce == NULL)) { |
CHECK_EXCEPTION(); | zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op1.zv)); |
ZEND_VM_NEXT_OPCODE(); | |
} |
} |
CACHE_PTR(opline->op1.literal->cache_slot, ce); |
CACHE_PTR(opline->op1.literal->cache_slot, ce); |
} |
} |
Line 3889 ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMP|VAR|CV,
|
Line 3896 ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMP|VAR|CV,
|
ce = CACHED_PTR(opline->op2.literal->cache_slot); |
ce = CACHED_PTR(opline->op2.literal->cache_slot); |
} else { |
} else { |
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC); |
ce = zend_fetch_class_by_name(Z_STRVAL_P(opline->op2.zv), Z_STRLEN_P(opline->op2.zv), opline->op2.literal + 1, 0 TSRMLS_CC); |
if (UNEXPECTED(ce == NULL)) { | if (UNEXPECTED(EG(exception) != NULL)) { |
if (OP1_TYPE != IS_CONST && varname == &tmp) { |
if (OP1_TYPE != IS_CONST && varname == &tmp) { |
zval_dtor(&tmp); |
zval_dtor(&tmp); |
} else if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) { |
} else if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) { |
zval_ptr_dtor(&varname); |
zval_ptr_dtor(&varname); |
} |
} |
FREE_OP1(); |
FREE_OP1(); |
CHECK_EXCEPTION(); | HANDLE_EXCEPTION(); |
ZEND_VM_NEXT_OPCODE(); | } |
| if (UNEXPECTED(ce == NULL)) { |
| zend_error_noreturn(E_ERROR, "Class '%s' not found", Z_STRVAL_P(opline->op2.zv)); |
} |
} |
CACHE_PTR(opline->op2.literal->cache_slot, ce); |
CACHE_PTR(opline->op2.literal->cache_slot, ce); |
} |
} |