From: Xinchen Hui Date: Fri, 30 Sep 2016 05:19:11 +0000 (+0800) Subject: Use smart branch X-Git-Tag: php-7.1.0RC4~109 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f211614ba709299a8262c5ae1e1bdc6043e6c91d;p=php Use smart branch --- diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 67f4f4b150..67fc670879 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -7052,12 +7052,9 @@ ZEND_VM_C_LABEL(try_instanceof): ce = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2))); if (UNEXPECTED(ce == NULL)) { ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (UNEXPECTED(ce == NULL)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); + if (EXPECTED(ce)) { + CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } - CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } } else if (OP2_TYPE == IS_UNUSED) { ce = zend_fetch_class(NULL, opline->op2.num); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 29fcf61b16..2ec54751ab 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -40279,12 +40279,9 @@ try_instanceof: ce = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2))); if (UNEXPECTED(ce == NULL)) { ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (UNEXPECTED(ce == NULL)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); + if (EXPECTED(ce)) { + CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } - CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } } else if (IS_CONST == IS_UNUSED) { ce = zend_fetch_class(NULL, opline->op2.num); @@ -41302,12 +41299,9 @@ try_instanceof: ce = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2))); if (UNEXPECTED(ce == NULL)) { ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (UNEXPECTED(ce == NULL)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); + if (EXPECTED(ce)) { + CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } - CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } } else if (IS_VAR == IS_UNUSED) { ce = zend_fetch_class(NULL, opline->op2.num); @@ -42975,12 +42969,9 @@ try_instanceof: ce = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2))); if (UNEXPECTED(ce == NULL)) { ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (UNEXPECTED(ce == NULL)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); + if (EXPECTED(ce)) { + CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } - CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } } else if (IS_UNUSED == IS_UNUSED) { ce = zend_fetch_class(NULL, opline->op2.num); @@ -53177,12 +53168,9 @@ try_instanceof: ce = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2))); if (UNEXPECTED(ce == NULL)) { ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (UNEXPECTED(ce == NULL)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); + if (EXPECTED(ce)) { + CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } - CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } } else if (IS_CONST == IS_UNUSED) { ce = zend_fetch_class(NULL, opline->op2.num); @@ -53556,12 +53544,9 @@ try_instanceof: ce = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2))); if (UNEXPECTED(ce == NULL)) { ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (UNEXPECTED(ce == NULL)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); + if (EXPECTED(ce)) { + CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } - CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } } else if (IS_VAR == IS_UNUSED) { ce = zend_fetch_class(NULL, opline->op2.num); @@ -54160,12 +54145,9 @@ try_instanceof: ce = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2))); if (UNEXPECTED(ce == NULL)) { ce = zend_fetch_class_by_name(Z_STR_P(EX_CONSTANT(opline->op2)), EX_CONSTANT(opline->op2) + 1, ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (UNEXPECTED(ce == NULL)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); + if (EXPECTED(ce)) { + CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } - CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce); } } else if (IS_UNUSED == IS_UNUSED) { ce = zend_fetch_class(NULL, opline->op2.num);