@@ -2519,9 +2519,11 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMP|VAR|UNUS
2519
2519
ce = CACHED_PTR (opline -> op1 .literal -> cache_slot );
2520
2520
} else {
2521
2521
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 );
2522
+ if (UNEXPECTED (EG (exception ) != NULL )) {
2523
+ HANDLE_EXCEPTION ();
2524
+ }
2522
2525
if (UNEXPECTED (ce == NULL )) {
2523
- CHECK_EXCEPTION ();
2524
- ZEND_VM_NEXT_OPCODE ();
2526
+ zend_error_noreturn (E_ERROR , "Class '%s' not found" , Z_STRVAL_P (opline -> op1 .zv ));
2525
2527
}
2526
2528
CACHE_PTR (opline -> op1 .literal -> cache_slot , ce );
2527
2529
}
@@ -3532,9 +3534,11 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
3532
3534
ce = CACHED_PTR (opline -> op1 .literal -> cache_slot );
3533
3535
} else {
3534
3536
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 );
3537
+ if (UNEXPECTED (EG (exception ) != NULL )) {
3538
+ HANDLE_EXCEPTION ();
3539
+ }
3535
3540
if (UNEXPECTED (ce == NULL )) {
3536
- CHECK_EXCEPTION ();
3537
- ZEND_VM_NEXT_OPCODE ();
3541
+ zend_error_noreturn (E_ERROR , "Class '%s' not found" , Z_STRVAL_P (opline -> op1 .zv ));
3538
3542
}
3539
3543
CACHE_PTR (opline -> op1 .literal -> cache_slot , ce );
3540
3544
}
@@ -3911,15 +3915,17 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMP|VAR|CV, UNUSED|CONST|VAR)
3911
3915
ce = CACHED_PTR (opline -> op2 .literal -> cache_slot );
3912
3916
} else {
3913
3917
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 );
3914
- if (UNEXPECTED (ce = = NULL )) {
3918
+ if (UNEXPECTED (EG ( exception ) ! = NULL )) {
3915
3919
if (OP1_TYPE != IS_CONST && varname == & tmp ) {
3916
3920
zval_dtor (& tmp );
3917
3921
} else if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV ) {
3918
3922
zval_ptr_dtor (& varname );
3919
3923
}
3920
3924
FREE_OP1 ();
3921
- CHECK_EXCEPTION ();
3922
- ZEND_VM_NEXT_OPCODE ();
3925
+ HANDLE_EXCEPTION ();
3926
+ }
3927
+ if (UNEXPECTED (ce == NULL )) {
3928
+ zend_error_noreturn (E_ERROR , "Class '%s' not found" , Z_STRVAL_P (opline -> op2 .zv ));
3923
3929
}
3924
3930
CACHE_PTR (opline -> op2 .literal -> cache_slot , ce );
3925
3931
}
0 commit comments