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