src/share/vm/opto/bytecodeInfo.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/bytecodeInfo.cpp	Mon Oct 14 20:39:26 2013
--- new/src/share/vm/opto/bytecodeInfo.cpp	Mon Oct 14 20:39:25 2013

*** 448,462 **** --- 448,462 ---- //------------------------------pass_initial_checks---------------------------- bool pass_initial_checks(ciMethod* caller_method, int caller_bci, ciMethod* callee_method) { ciInstanceKlass *callee_holder = callee_method ? callee_method->holder() : NULL; // Check if a callee_method was suggested ! if( callee_method == NULL ) return false; ! if (callee_method == NULL) return false; // Check if klass of callee_method is loaded ! if( !callee_holder->is_loaded() ) return false; ! if( !callee_holder->is_initialized() ) return false; ! if( !UseInterpreter || CompileTheWorld /* running Xcomp or CTW */ ) { ! if (!callee_holder->is_loaded()) return false; ! if (!callee_holder->is_initialized()) return false; ! if (!UseInterpreter || CompileTheWorld /* running Xcomp or CTW */) { // Checks that constant pool's call site has been visited // stricter than callee_holder->is_initialized() ciBytecodeStream iter(caller_method); iter.force_bci(caller_bci); Bytecodes::Code call_bc = iter.cur_bc();
*** 465,483 **** --- 465,484 ---- int index = iter.get_index_u2_cpcache(); if (!caller_method->is_klass_loaded(index, true)) { return false; } // Try to do constant pool resolution if running Xcomp ! if( !caller_method->check_call(index, call_bc == Bytecodes::_invokestatic) ) { ! if (!caller_method->check_call(index, call_bc == Bytecodes::_invokestatic)) { return false; } } } // We will attempt to see if a class/field/etc got properly loaded. If it // did not, it may attempt to throw an exception during our probing. Catch // and ignore such exceptions and do not attempt to compile the method. ! if( callee_method->should_exclude() ) return false; ! if (callee_method->should_exclude() && + !callee_method->should_inline()) return false; return true; } //------------------------------check_can_parse--------------------------------

src/share/vm/opto/bytecodeInfo.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File