8026735: Stream tests throw java.lang.IncompatibleClassChangeError

Put a band-aid to disable CHA-based inlining for interfaces with default methods in C1

Reviewed-by: kvn, twisti
This commit is contained in:
Igor Veresov 2013-10-30 22:55:11 -07:00
parent 612252d7a2
commit e43ac25584
4 changed files with 72 additions and 1 deletions

View file

@ -1873,7 +1873,7 @@ void GraphBuilder::invoke(Bytecodes::Code code) {
// number of implementors for decl_interface is 0 or 1. If
// it's 0 then no class implements decl_interface and there's
// no point in inlining.
if (!holder->is_loaded() || decl_interface->nof_implementors() != 1) {
if (!holder->is_loaded() || decl_interface->nof_implementors() != 1 || decl_interface->has_default_methods()) {
singleton = NULL;
}
}