@ -3902,9 +3902,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_
container = opline - > op1 . zv ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , opline - > op2 . zv , IS_CONST TSRMLS_CC ) ;
if ( IS_CONST ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -4055,7 +4053,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CONST_HANDLER(ZEND_
}
}
static int ZEND_FASTCALL ZEND_FETCH_DIM_TMP_VAR _SPEC_CONST_CONST_HANDLER ( ZEND_OPCODE_HANDLER_ARGS )
static int ZEND_FASTCALL ZEND_FETCH_LIST _SPEC_CONST_CONST_HANDLER ( ZEND_OPCODE_HANDLER_ARGS )
{
USE_OPLINE
@ -4064,14 +4062,25 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_TMP_VAR_SPEC_CONST_CONST_HANDLER(ZEND_O
SAVE_OPLINE ( ) ;
container = opline - > op1 . zv ;
if ( UNEXPECTED ( Z_TYPE_P ( container ) ! = IS_ARRAY ) ) {
ZVAL_NULL ( EX_VAR ( opline - > result . var ) ) ;
} else {
if ( EXPECTED ( Z_TYPE_P ( container ) = = IS_ARRAY ) ) {
zval * value = zend_fetch_dimension_address_inner ( Z_ARRVAL_P ( container ) , opline - > op2 . zv , IS_CONST , BP_VAR_R TSRMLS_CC ) ;
ZVAL_COPY ( EX_VAR ( opline - > result . var ) , value ) ;
} else if ( UNEXPECTED ( Z_TYPE_P ( container ) = = IS_OBJECT ) & &
EXPECTED ( Z_OBJ_HT_P ( container ) - > read_dimension ) ) {
zval * result = EX_VAR ( opline - > result . var ) ;
zval * retval = Z_OBJ_HT_P ( container ) - > read_dimension ( container , opline - > op2 . zv , BP_VAR_R , result TSRMLS_CC ) ;
if ( retval ) {
if ( result ! = retval ) {
ZVAL_COPY ( result , retval ) ;
}
} else {
ZVAL_NULL ( result ) ;
}
} else {
ZVAL_NULL ( EX_VAR ( opline - > result . var ) ) ;
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
@ -5249,9 +5258,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HA
container = opline - > op1 . zv ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_tmp ( opline - > op2 . var , execute_data , & free_op2 TSRMLS_CC ) , IS_TMP_VAR TSRMLS_CC ) ;
zval_ptr_dtor_nogc ( free_op2 . var ) ;
if ( IS_CONST ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -6446,9 +6453,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HA
container = opline - > op1 . zv ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_var_deref ( opline - > op2 . var , execute_data , & free_op2 TSRMLS_CC ) , IS_VAR TSRMLS_CC ) ;
zval_ptr_dtor_nogc ( free_op2 . var ) ;
if ( IS_CONST ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -8389,9 +8394,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HAN
container = opline - > op1 . zv ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_cv_deref_BP_VAR_R ( execute_data , opline - > op2 . var TSRMLS_CC ) , IS_CV TSRMLS_CC ) ;
if ( IS_CONST ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -10753,9 +10756,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HA
container = _get_zval_ptr_tmp ( opline - > op1 . var , execute_data , & free_op1 TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , opline - > op2 . zv , IS_CONST TSRMLS_CC ) ;
if ( IS_TMP_VAR ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
zval_ptr_dtor_nogc ( free_op1 . var ) ;
}
zval_ptr_dtor_nogc ( free_op1 . var ) ;
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -10906,7 +10907,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CONST_HANDLER(ZEND_OP
}
}
static int ZEND_FASTCALL ZEND_FETCH_DIM_TMP_VAR _SPEC_TMP_CONST_HANDLER ( ZEND_OPCODE_HANDLER_ARGS )
static int ZEND_FASTCALL ZEND_FETCH_LIST _SPEC_TMP_CONST_HANDLER ( ZEND_OPCODE_HANDLER_ARGS )
{
USE_OPLINE
zend_free_op free_op1 ;
@ -10915,14 +10916,25 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_TMP_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPC
SAVE_OPLINE ( ) ;
container = _get_zval_ptr_tmp ( opline - > op1 . var , execute_data , & free_op1 TSRMLS_CC ) ;
if ( UNEXPECTED ( Z_TYPE_P ( container ) ! = IS_ARRAY ) ) {
ZVAL_NULL ( EX_VAR ( opline - > result . var ) ) ;
} else {
if ( EXPECTED ( Z_TYPE_P ( container ) = = IS_ARRAY ) ) {
zval * value = zend_fetch_dimension_address_inner ( Z_ARRVAL_P ( container ) , opline - > op2 . zv , IS_CONST , BP_VAR_R TSRMLS_CC ) ;
ZVAL_COPY ( EX_VAR ( opline - > result . var ) , value ) ;
} else if ( UNEXPECTED ( Z_TYPE_P ( container ) = = IS_OBJECT ) & &
EXPECTED ( Z_OBJ_HT_P ( container ) - > read_dimension ) ) {
zval * result = EX_VAR ( opline - > result . var ) ;
zval * retval = Z_OBJ_HT_P ( container ) - > read_dimension ( container , opline - > op2 . zv , BP_VAR_R , result TSRMLS_CC ) ;
if ( retval ) {
if ( result ! = retval ) {
ZVAL_COPY ( result , retval ) ;
}
} else {
ZVAL_NULL ( result ) ;
}
} else {
ZVAL_NULL ( EX_VAR ( opline - > result . var ) ) ;
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
@ -11901,9 +11913,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HAND
container = _get_zval_ptr_tmp ( opline - > op1 . var , execute_data , & free_op1 TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_tmp ( opline - > op2 . var , execute_data , & free_op2 TSRMLS_CC ) , IS_TMP_VAR TSRMLS_CC ) ;
zval_ptr_dtor_nogc ( free_op2 . var ) ;
if ( IS_TMP_VAR ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
zval_ptr_dtor_nogc ( free_op1 . var ) ;
}
zval_ptr_dtor_nogc ( free_op1 . var ) ;
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -13034,9 +13044,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAND
container = _get_zval_ptr_tmp ( opline - > op1 . var , execute_data , & free_op1 TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_var_deref ( opline - > op2 . var , execute_data , & free_op2 TSRMLS_CC ) , IS_VAR TSRMLS_CC ) ;
zval_ptr_dtor_nogc ( free_op2 . var ) ;
if ( IS_TMP_VAR ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
zval_ptr_dtor_nogc ( free_op1 . var ) ;
}
zval_ptr_dtor_nogc ( free_op1 . var ) ;
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -14763,9 +14771,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDL
container = _get_zval_ptr_tmp ( opline - > op1 . var , execute_data , & free_op1 TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_cv_deref_BP_VAR_R ( execute_data , opline - > op2 . var TSRMLS_CC ) , IS_CV TSRMLS_CC ) ;
if ( IS_TMP_VAR ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
zval_ptr_dtor_nogc ( free_op1 . var ) ;
}
zval_ptr_dtor_nogc ( free_op1 . var ) ;
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -18097,9 +18103,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
container = _get_zval_ptr_var ( opline - > op1 . var , execute_data , & free_op1 TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , opline - > op2 . zv , IS_CONST TSRMLS_CC ) ;
if ( IS_VAR ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
zval_ptr_dtor_nogc ( free_op1 . var ) ;
}
zval_ptr_dtor_nogc ( free_op1 . var ) ;
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -18392,6 +18396,39 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD
ZEND_VM_NEXT_OPCODE ( ) ;
}
static int ZEND_FASTCALL ZEND_FETCH_LIST_SPEC_VAR_CONST_HANDLER ( ZEND_OPCODE_HANDLER_ARGS )
{
USE_OPLINE
zend_free_op free_op1 ;
zval * container ;
SAVE_OPLINE ( ) ;
container = _get_zval_ptr_var_deref ( opline - > op1 . var , execute_data , & free_op1 TSRMLS_CC ) ;
if ( EXPECTED ( Z_TYPE_P ( container ) = = IS_ARRAY ) ) {
zval * value = zend_fetch_dimension_address_inner ( Z_ARRVAL_P ( container ) , opline - > op2 . zv , IS_CONST , BP_VAR_R TSRMLS_CC ) ;
ZVAL_COPY ( EX_VAR ( opline - > result . var ) , value ) ;
} else if ( UNEXPECTED ( Z_TYPE_P ( container ) = = IS_OBJECT ) & &
EXPECTED ( Z_OBJ_HT_P ( container ) - > read_dimension ) ) {
zval * result = EX_VAR ( opline - > result . var ) ;
zval * retval = Z_OBJ_HT_P ( container ) - > read_dimension ( container , opline - > op2 . zv , BP_VAR_R , result TSRMLS_CC ) ;
if ( retval ) {
if ( result ! = retval ) {
ZVAL_COPY ( result , retval ) ;
}
} else {
ZVAL_NULL ( result ) ;
}
} else {
ZVAL_NULL ( EX_VAR ( opline - > result . var ) ) ;
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_HANDLER ( ZEND_OPCODE_HANDLER_ARGS )
{
USE_OPLINE
@ -20319,9 +20356,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
container = _get_zval_ptr_var ( opline - > op1 . var , execute_data , & free_op1 TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_tmp ( opline - > op2 . var , execute_data , & free_op2 TSRMLS_CC ) , IS_TMP_VAR TSRMLS_CC ) ;
zval_ptr_dtor_nogc ( free_op2 . var ) ;
if ( IS_VAR ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
zval_ptr_dtor_nogc ( free_op1 . var ) ;
}
zval_ptr_dtor_nogc ( free_op1 . var ) ;
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -22446,9 +22481,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
container = _get_zval_ptr_var ( opline - > op1 . var , execute_data , & free_op1 TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_var_deref ( opline - > op2 . var , execute_data , & free_op2 TSRMLS_CC ) , IS_VAR TSRMLS_CC ) ;
zval_ptr_dtor_nogc ( free_op2 . var ) ;
if ( IS_VAR ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
zval_ptr_dtor_nogc ( free_op1 . var ) ;
}
zval_ptr_dtor_nogc ( free_op1 . var ) ;
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -25837,9 +25870,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
container = _get_zval_ptr_var ( opline - > op1 . var , execute_data , & free_op1 TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_cv_deref_BP_VAR_R ( execute_data , opline - > op2 . var TSRMLS_CC ) , IS_CV TSRMLS_CC ) ;
if ( IS_VAR ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
zval_ptr_dtor_nogc ( free_op1 . var ) ;
}
zval_ptr_dtor_nogc ( free_op1 . var ) ;
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -35178,9 +35209,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAN
container = _get_zval_ptr_cv_BP_VAR_R ( execute_data , opline - > op1 . var TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , opline - > op2 . zv , IS_CONST TSRMLS_CC ) ;
if ( IS_CV ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -35473,6 +35502,39 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE
ZEND_VM_NEXT_OPCODE ( ) ;
}
static int ZEND_FASTCALL ZEND_FETCH_LIST_SPEC_CV_CONST_HANDLER ( ZEND_OPCODE_HANDLER_ARGS )
{
USE_OPLINE
zval * container ;
SAVE_OPLINE ( ) ;
container = _get_zval_ptr_cv_deref_BP_VAR_R ( execute_data , opline - > op1 . var TSRMLS_CC ) ;
if ( EXPECTED ( Z_TYPE_P ( container ) = = IS_ARRAY ) ) {
zval * value = zend_fetch_dimension_address_inner ( Z_ARRVAL_P ( container ) , opline - > op2 . zv , IS_CONST , BP_VAR_R TSRMLS_CC ) ;
ZVAL_COPY ( EX_VAR ( opline - > result . var ) , value ) ;
} else if ( UNEXPECTED ( Z_TYPE_P ( container ) = = IS_OBJECT ) & &
EXPECTED ( Z_OBJ_HT_P ( container ) - > read_dimension ) ) {
zval * result = EX_VAR ( opline - > result . var ) ;
zval * retval = Z_OBJ_HT_P ( container ) - > read_dimension ( container , opline - > op2 . zv , BP_VAR_R , result TSRMLS_CC ) ;
if ( retval ) {
if ( result ! = retval ) {
ZVAL_COPY ( result , retval ) ;
}
} else {
ZVAL_NULL ( result ) ;
}
} else {
ZVAL_NULL ( EX_VAR ( opline - > result . var ) ) ;
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_HANDLER ( ZEND_OPCODE_HANDLER_ARGS )
{
USE_OPLINE
@ -37233,9 +37295,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL
container = _get_zval_ptr_cv_BP_VAR_R ( execute_data , opline - > op1 . var TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_tmp ( opline - > op2 . var , execute_data , & free_op2 TSRMLS_CC ) , IS_TMP_VAR TSRMLS_CC ) ;
zval_ptr_dtor_nogc ( free_op2 . var ) ;
if ( IS_CV ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -39232,9 +39292,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
container = _get_zval_ptr_cv_BP_VAR_R ( execute_data , opline - > op1 . var TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_var_deref ( opline - > op2 . var , execute_data , & free_op2 TSRMLS_CC ) , IS_VAR TSRMLS_CC ) ;
zval_ptr_dtor_nogc ( free_op2 . var ) ;
if ( IS_CV ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -42349,9 +42407,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLE
container = _get_zval_ptr_cv_BP_VAR_R ( execute_data , opline - > op1 . var TSRMLS_CC ) ;
zend_fetch_dimension_address_read_R ( EX_VAR ( opline - > result . var ) , container , _get_zval_ptr_cv_deref_BP_VAR_R ( execute_data , opline - > op2 . var TSRMLS_CC ) , IS_CV TSRMLS_CC ) ;
if ( IS_CV ! = IS_VAR | | ! ( opline - > extended_value & ZEND_FETCH_ADD_LOCK ) ) {
}
CHECK_EXCEPTION ( ) ;
ZEND_VM_NEXT_OPCODE ( ) ;
}
@ -45896,18 +45952,17 @@ void zend_init_opcodes_handlers(void)
ZEND_FETCH_OBJ_UNSET_SPEC_CV_VAR_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HANDLER ,
ZEND_FETCH_DIM_TMP_VAR_SPEC_CONST_CONST_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_FETCH_LIST_SPEC_CONST_CONST_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_FETCH_DIM_TMP_VAR_SPEC_TMP_CONST_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_FETCH_LIST_SPEC_TMP_CONST_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_FETCH_LIST_SPEC_VAR_CONST_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
@ -45917,6 +45972,7 @@ void zend_init_opcodes_handlers(void)
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_FETCH_LIST_SPEC_CV_CONST_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,
ZEND_NULL_HANDLER ,