A list of smaller cleanups, each one too small to justify an own issue:
1) VMError exposes is_error_reported(), fatal_error_in_progress() and get_first_error_tid(). These functions are used from outside to check on the state of error handling. They can be combined and duplicate coding removed.
2) A lot of methods are unnecessarily public
3) some global variables in vmError.cpp can be limited to file scope
4) definition of VMError static variables should be combined to the start of the cpp file
1) VMError exposes is_error_reported(), fatal_error_in_progress() and get_first_error_tid(). These functions are used from outside to check on the state of error handling. They can be combined and duplicate coding removed.
2) A lot of methods are unnecessarily public
3) some global variables in vmError.cpp can be limited to file scope
4) definition of VMError static variables should be combined to the start of the cpp file