version 1.1.1.4, 2013/10/14 08:02:49
|
version 1.1.1.5, 2014/06/15 20:04:04
|
Line 2
|
Line 2
|
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| Zend Engine | |
| Zend Engine | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) | | | Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| This source file is subject to version 2.00 of the Zend license, | |
| This source file is subject to version 2.00 of the Zend license, | |
| that is bundled with this package in the file LICENSE, and is | |
| that is bundled with this package in the file LICENSE, and is | |
Line 1166 ZEND_VM_HANDLER(81, ZEND_FETCH_DIM_R, VAR|CV, CONST|TM
|
Line 1166 ZEND_VM_HANDLER(81, ZEND_FETCH_DIM_R, VAR|CV, CONST|TM
|
{ |
{ |
USE_OPLINE |
USE_OPLINE |
zend_free_op free_op1, free_op2; |
zend_free_op free_op1, free_op2; |
zval **container; | zval *container; |
|
|
SAVE_OPLINE(); |
SAVE_OPLINE(); |
|
|
if ((opline->extended_value & ZEND_FETCH_ADD_LOCK) && | if (OP1_TYPE == IS_VAR && (opline->extended_value & ZEND_FETCH_ADD_LOCK)) { |
OP1_TYPE != IS_CV && | PZVAL_LOCK(EX_T(opline->op1.var).var.ptr); |
EX_T(opline->op1.var).var.ptr_ptr) { | |
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr); | |
} |
} |
container = GET_OP1_ZVAL_PTR_PTR(BP_VAR_R); | container = GET_OP1_ZVAL_PTR(BP_VAR_R); |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_R TSRMLS_CC); |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_R TSRMLS_CC); |
FREE_OP2(); |
FREE_OP2(); |
FREE_OP1_VAR_PTR(); | FREE_OP1(); |
CHECK_EXCEPTION(); |
CHECK_EXCEPTION(); |
ZEND_VM_NEXT_OPCODE(); |
ZEND_VM_NEXT_OPCODE(); |
} |
} |
Line 1243 ZEND_VM_HANDLER(90, ZEND_FETCH_DIM_IS, VAR|CV, CONST|T
|
Line 1241 ZEND_VM_HANDLER(90, ZEND_FETCH_DIM_IS, VAR|CV, CONST|T
|
{ |
{ |
USE_OPLINE |
USE_OPLINE |
zend_free_op free_op1, free_op2; |
zend_free_op free_op1, free_op2; |
zval **container; | zval *container; |
|
|
SAVE_OPLINE(); |
SAVE_OPLINE(); |
container = GET_OP1_ZVAL_PTR_PTR(BP_VAR_IS); | container = GET_OP1_ZVAL_PTR(BP_VAR_IS); |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_IS TSRMLS_CC); |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_IS TSRMLS_CC); |
FREE_OP2(); |
FREE_OP2(); |
FREE_OP1_VAR_PTR(); | FREE_OP1(); |
CHECK_EXCEPTION(); |
CHECK_EXCEPTION(); |
ZEND_VM_NEXT_OPCODE(); |
ZEND_VM_NEXT_OPCODE(); |
} |
} |
Line 1258 ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, VAR|CV, C
|
Line 1256 ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, VAR|CV, C
|
{ |
{ |
USE_OPLINE |
USE_OPLINE |
zend_free_op free_op1, free_op2; |
zend_free_op free_op1, free_op2; |
zval **container; |
|
|
|
SAVE_OPLINE(); |
SAVE_OPLINE(); |
|
|
if (ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), (opline->extended_value & ZEND_FETCH_ARG_MASK))) { |
if (ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), (opline->extended_value & ZEND_FETCH_ARG_MASK))) { |
container = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W); | zval **container = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W); |
| |
if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) { |
if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) { |
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array"); |
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array"); |
} |
} |
Line 1271 ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, VAR|CV, C
|
Line 1269 ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, VAR|CV, C
|
if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) { |
if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) { |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); |
} |
} |
|
FREE_OP2(); |
|
FREE_OP1_VAR_PTR(); |
} else { |
} else { |
|
zval *container; |
|
|
if (OP2_TYPE == IS_UNUSED) { |
if (OP2_TYPE == IS_UNUSED) { |
zend_error_noreturn(E_ERROR, "Cannot use [] for reading"); |
zend_error_noreturn(E_ERROR, "Cannot use [] for reading"); |
} |
} |
container = GET_OP1_ZVAL_PTR_PTR(BP_VAR_R); | container = GET_OP1_ZVAL_PTR(BP_VAR_R); |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_R TSRMLS_CC); |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_R TSRMLS_CC); |
|
FREE_OP2(); |
|
FREE_OP1(); |
} |
} |
FREE_OP2(); |
|
FREE_OP1_VAR_PTR(); |
|
CHECK_EXCEPTION(); |
CHECK_EXCEPTION(); |
ZEND_VM_NEXT_OPCODE(); |
ZEND_VM_NEXT_OPCODE(); |
} |
} |