@@ -2229,9 +2229,11 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS
2229
2229
ce = CACHED_PTR (opline -> op1 .literal -> cache_slot );
2230
2230
} else {
2231
2231
ce = zend_fetch_class_by_name (Z_STRVAL_P (opline -> op1 .zv ), Z_STRLEN_P (opline -> op1 .zv ), opline -> op1 .literal + 1 , opline -> extended_value TSRMLS_CC );
2232
+ if (UNEXPECTED (EG (exception ) != NULL )) {
2233
+ HANDLE_EXCEPTION ();
2234
+ }
2232
2235
if (UNEXPECTED (ce == NULL )) {
2233
- CHECK_EXCEPTION ();
2234
- ZEND_VM_NEXT_OPCODE ();
2236
+ zend_error_noreturn (E_ERROR , "Class '%s' not found" , Z_STRVAL_P (opline -> op1 .zv ));
2235
2237
}
2236
2238
CACHE_PTR (opline -> op1 .literal -> cache_slot , ce );
2237
2239
}
@@ -2414,9 +2416,11 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST|TMP|VAR|CV)
2414
2416
2415
2417
if (Z_TYPE_PP (obj ) == IS_STRING ) {
2416
2418
ce = zend_fetch_class_by_name (Z_STRVAL_PP (obj ), Z_STRLEN_PP (obj ), NULL , 0 TSRMLS_CC );
2419
+ if (UNEXPECTED (EG (exception ) != NULL )) {
2420
+ HANDLE_EXCEPTION ();
2421
+ }
2417
2422
if (UNEXPECTED (ce == NULL )) {
2418
- CHECK_EXCEPTION ();
2419
- ZEND_VM_NEXT_OPCODE ();
2423
+ zend_error_noreturn (E_ERROR , "Class '%s' not found" , Z_STRVAL_PP (obj ));
2420
2424
}
2421
2425
EX (called_scope ) = ce ;
2422
2426
EX (object ) = NULL ;
@@ -3498,9 +3502,11 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
3498
3502
ce = CACHED_PTR (opline -> op1 .literal -> cache_slot );
3499
3503
} else {
3500
3504
ce = zend_fetch_class_by_name (Z_STRVAL_P (opline -> op1 .zv ), Z_STRLEN_P (opline -> op1 .zv ), opline -> op1 .literal + 1 , opline -> extended_value TSRMLS_CC );
3505
+ if (UNEXPECTED (EG (exception ) != NULL )) {
3506
+ HANDLE_EXCEPTION ();
3507
+ }
3501
3508
if (UNEXPECTED (ce == NULL )) {
3502
- CHECK_EXCEPTION ();
3503
- ZEND_VM_NEXT_OPCODE ();
3509
+ zend_error_noreturn (E_ERROR , "Class '%s' not found" , Z_STRVAL_P (opline -> op1 .zv ));
3504
3510
}
3505
3511
CACHE_PTR (opline -> op1 .literal -> cache_slot , ce );
3506
3512
}
@@ -3887,15 +3893,17 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMP|VAR|CV, UNUSED|CONST|VAR)
3887
3893
ce = CACHED_PTR (opline -> op2 .literal -> cache_slot );
3888
3894
} else {
3889
3895
ce = zend_fetch_class_by_name (Z_STRVAL_P (opline -> op2 .zv ), Z_STRLEN_P (opline -> op2 .zv ), opline -> op2 .literal + 1 , 0 TSRMLS_CC );
3890
- if (UNEXPECTED (ce = = NULL )) {
3896
+ if (UNEXPECTED (EG ( exception ) ! = NULL )) {
3891
3897
if (OP1_TYPE != IS_CONST && varname == & tmp ) {
3892
3898
zval_dtor (& tmp );
3893
3899
} else if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV ) {
3894
3900
zval_ptr_dtor (& varname );
3895
3901
}
3896
3902
FREE_OP1 ();
3897
- CHECK_EXCEPTION ();
3898
- ZEND_VM_NEXT_OPCODE ();
3903
+ HANDLE_EXCEPTION ();
3904
+ }
3905
+ if (UNEXPECTED (ce == NULL )) {
3906
+ zend_error_noreturn (E_ERROR , "Class '%s' not found" , Z_STRVAL_P (opline -> op2 .zv ));
3899
3907
}
3900
3908
CACHE_PTR (opline -> op2 .literal -> cache_slot , ce );
3901
3909
}
0 commit comments