Index: vm/vmcore/src/verifier/ver_real.h =================================================================== --- vm/vmcore/src/verifier/ver_real.h (revision 509135) +++ vm/vmcore/src/verifier/ver_real.h (working copy) @@ -71,12 +71,14 @@ stream << error_message; \ vf_set_error_message( stream, (context) ); \ } -#define VERIFY_REPORT_METHOD(context, error_message ) \ +#define VERIFY_REPORT_CLASS(context, method, error_message ) \ VERIFY_REPORT(context, \ "(class: " << class_get_name( (context)->m_class ) \ - << ", method: " << method_get_name( (context)->m_method ) \ - << method_get_descriptor( (context)->m_method ) \ + << ", method: " << method_get_name( method ) \ + << method_get_descriptor( method ) \ << ") " << error_message ) +#define VERIFY_REPORT_METHOD(context, error_message ) \ + VERIFY_REPORT_CLASS(context, (context)->m_method, error_message ) /** * Define source code line and source file name parameters and arguments. Index: vm/vmcore/src/verifier/ver_utils.cpp =================================================================== --- vm/vmcore/src/verifier/ver_utils.cpp (revision 509135) +++ vm/vmcore/src/verifier/ver_utils.cpp (working copy) @@ -1007,12 +1007,8 @@ case VF_CHECK_INVOKESPECIAL: // check object for invokespecial instruction return vf_is_super_class( source, current ) && vf_is_super_class( current, target ); - default: - LDIE(40, "Verifier: vf_is_valid: invalid check type" ); - return false; } - // unreachable code - assert(0); + LDIE(40, "Verifier: vf_is_valid: invalid check type" ); } // vf_is_valid /** @@ -1026,42 +1022,39 @@ switch( check ) { case VF_CHECK_PARAM: - VERIFY_REPORT_METHOD( ctex, + VERIFY_REPORT_CLASS( ctex, method, "Incompatible argument for function" ); - break; + return; case VF_CHECK_ASSIGN: - VERIFY_REPORT_METHOD( ctex, + VERIFY_REPORT_CLASS( ctex, method, "Incompatible types for field assignment" ); - break; + return; case VF_CHECK_ASSIGN_WEAK: - VERIFY_REPORT_METHOD( ctex, + VERIFY_REPORT_CLASS( ctex, method, "Incompatible types for array assignment" ); - break; + return; case VF_CHECK_SUPER: - VERIFY_REPORT_METHOD( ctex, + VERIFY_REPORT_CLASS( ctex, method, "Exception class not a subclass of Throwable" ); - break; + return; case VF_CHECK_ACCESS_FIELD: - VERIFY_REPORT_METHOD( ctex, + VERIFY_REPORT_CLASS( ctex, method, "Bad access to protected field" ); - break; + return; case VF_CHECK_ACCESS_METHOD: - VERIFY_REPORT_METHOD( ctex, + VERIFY_REPORT_CLASS( ctex, method, "Bad access to protected method" ); - break; + return; case VF_CHECK_DIRECT_SUPER: - VERIFY_REPORT_METHOD( ctex, + VERIFY_REPORT_CLASS( ctex, method, "Call to wrong initialization method" ); - break; + return; case VF_CHECK_INVOKESPECIAL: - VERIFY_REPORT_METHOD( ctex, + VERIFY_REPORT_CLASS( ctex, method, "Incompatible object argument for invokespecial" ); - break; - default: - LDIE(41, "Verifier: vf_set_error: unknown check type" ); - break; + return; } - return; + LDIE(41, "Verifier: vf_set_error: unknown check type" ); } // vf_set_error /**