if (IS_CONST == IS_CONST ||
(IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = RT_CONSTANT(opline, opline->op2);
+ offset = RT_CONSTANT(opline, opline->op2);
if (IS_CONST == IS_CONST ||
(IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC);
if (IS_CONST == IS_CONST ||
(IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
if (IS_CONST == IS_CONST ||
(IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
if (IS_CONST == IS_CONST ||
(IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (IS_CONST == IS_CONST ||
(IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
if (IS_TMP_VAR == IS_CONST ||
(IS_TMP_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC);
if (IS_TMP_VAR == IS_CONST ||
(IS_TMP_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
if (IS_TMP_VAR == IS_CONST ||
(IS_TMP_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
if (IS_VAR == IS_CONST ||
(IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC);
if (IS_VAR == IS_CONST ||
(IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
if (IS_VAR == IS_CONST ||
(IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
if (IS_UNUSED == IS_CONST ||
(IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = RT_CONSTANT(opline, opline->op2);
+ offset = RT_CONSTANT(opline, opline->op2);
if (IS_UNUSED == IS_CONST ||
(IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC);
if (IS_UNUSED == IS_CONST ||
(IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
if (IS_UNUSED == IS_CONST ||
(IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
if (IS_UNUSED == IS_CONST ||
(IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (IS_UNUSED == IS_CONST ||
(IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
void **cache_slot = NULL;
SAVE_OPLINE();
- container = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
+ container = _get_zval_ptr_cv_undef(opline->op1.var EXECUTE_DATA_CC);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
if (IS_CV == IS_CONST ||
(IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = RT_CONSTANT(opline, opline->op2);
+ offset = RT_CONSTANT(opline, opline->op2);
if (IS_CV == IS_CONST ||
(IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
void **cache_slot = NULL;
SAVE_OPLINE();
- container = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
+ container = _get_zval_ptr_cv_undef(opline->op1.var EXECUTE_DATA_CC);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC);
if (IS_CV == IS_CONST ||
(IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
if (IS_CV == IS_CONST ||
(IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
void **cache_slot = NULL;
SAVE_OPLINE();
- container = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
+ container = _get_zval_ptr_cv_undef(opline->op1.var EXECUTE_DATA_CC);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
if (IS_CV == IS_CONST ||
(IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_r_no_object;
+ do {
+ if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
+ }
+ if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) {
+ GET_OP1_UNDEF_CV(container, BP_VAR_R);
+ }
+ if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
- } else {
goto fetch_obj_r_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
}
}
}
+ } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) {
+ GET_OP2_UNDEF_CV(offset, BP_VAR_R);
}
if (UNEXPECTED(zobj->handlers->read_property == NULL)) {
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if (IS_CV == IS_CONST ||
(IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = RT_CONSTANT(opline, opline->op2);
+ offset = RT_CONSTANT(opline, opline->op2);
if ((IS_TMP_VAR|IS_VAR) == IS_CONST ||
((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
if ((IS_TMP_VAR|IS_VAR) == IS_CONST ||
((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
- offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
+ offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
if ((IS_TMP_VAR|IS_VAR) == IS_CONST ||
((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) {
- if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
- container = Z_REFVAL_P(container);
- if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
- goto fetch_obj_is_no_object;
+ do {
+ if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
+ container = Z_REFVAL_P(container);
+ if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
+ break;
+ }
}
- } else {
goto fetch_obj_is_no_object;
- }
+ } while (0);
}
/* here we are sure we are dealing with an object */