mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
Fixed "instanceof" with undefined classes
This commit is contained in:
parent
88ca46d92b
commit
6e396961c5
@ -5428,7 +5428,8 @@ void zend_compile_instanceof(znode *result, zend_ast *ast TSRMLS_DC) /* {{{ */
|
||||
class_node.op_type = IS_CONST;
|
||||
ZVAL_STR(&class_node.u.constant, zend_resolve_class_name_ast(class_ast TSRMLS_CC));
|
||||
} else {
|
||||
zend_compile_class_ref(&class_node, class_ast TSRMLS_CC);
|
||||
opline = zend_compile_class_ref(&class_node, class_ast TSRMLS_CC);
|
||||
opline->extended_value |= ZEND_FETCH_CLASS_NO_AUTOLOAD;
|
||||
}
|
||||
|
||||
opline = zend_emit_op_tmp(result, ZEND_INSTANCEOF, &obj_node, NULL TSRMLS_CC);
|
||||
|
@ -2075,7 +2075,7 @@ ZEND_VM_HANDLER(109, ZEND_FETCH_CLASS, ANY, CONST|TMP|VAR|UNUSED|CV)
|
||||
} else if (Z_TYPE_P(class_name) == IS_OBJECT) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name);
|
||||
} else if (Z_TYPE_P(class_name) == IS_STRING) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), 0 TSRMLS_CC);
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->extended_value TSRMLS_CC);
|
||||
} else {
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
HANDLE_EXCEPTION();
|
||||
|
@ -1429,7 +1429,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLE
|
||||
} else if (Z_TYPE_P(class_name) == IS_OBJECT) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name);
|
||||
} else if (Z_TYPE_P(class_name) == IS_STRING) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), 0 TSRMLS_CC);
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->extended_value TSRMLS_CC);
|
||||
} else {
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
HANDLE_EXCEPTION();
|
||||
@ -1764,7 +1764,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_
|
||||
} else if (Z_TYPE_P(class_name) == IS_OBJECT) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name);
|
||||
} else if (Z_TYPE_P(class_name) == IS_STRING) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), 0 TSRMLS_CC);
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->extended_value TSRMLS_CC);
|
||||
} else {
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
HANDLE_EXCEPTION();
|
||||
@ -1950,7 +1950,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_
|
||||
} else if (Z_TYPE_P(class_name) == IS_OBJECT) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name);
|
||||
} else if (Z_TYPE_P(class_name) == IS_STRING) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), 0 TSRMLS_CC);
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->extended_value TSRMLS_CC);
|
||||
} else {
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
HANDLE_EXCEPTION();
|
||||
@ -2136,7 +2136,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDL
|
||||
} else if (Z_TYPE_P(class_name) == IS_OBJECT) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name);
|
||||
} else if (Z_TYPE_P(class_name) == IS_STRING) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), 0 TSRMLS_CC);
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->extended_value TSRMLS_CC);
|
||||
} else {
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
HANDLE_EXCEPTION();
|
||||
@ -2175,7 +2175,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_A
|
||||
} else if (Z_TYPE_P(class_name) == IS_OBJECT) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name);
|
||||
} else if (Z_TYPE_P(class_name) == IS_STRING) {
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), 0 TSRMLS_CC);
|
||||
Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->extended_value TSRMLS_CC);
|
||||
} else {
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
HANDLE_EXCEPTION();
|
||||
|
Loading…
Reference in New Issue
Block a user