comparison src/share/vm/oops/methodOop.cpp @ 3748:d3b9f2be46ab

7033141: assert(has_cp_cache(i)) failed: oob Summary: Unrewrite bytecodes for OOM error allocating the constant pool cache. Reviewed-by: dcubed, acorn, never
author coleenp
date Sat, 21 May 2011 15:39:54 -0700
parents 328926869b15
children deaa3ce90583
comparison
equal deleted inserted replaced
3397:cfbca4d74a61 3748:d3b9f2be46ab
691 } 691 }
692 692
693 // Called when the method_holder is getting linked. Setup entrypoints so the method 693 // Called when the method_holder is getting linked. Setup entrypoints so the method
694 // is ready to be called from interpreter, compiler, and vtables. 694 // is ready to be called from interpreter, compiler, and vtables.
695 void methodOopDesc::link_method(methodHandle h_method, TRAPS) { 695 void methodOopDesc::link_method(methodHandle h_method, TRAPS) {
696 assert(_i2i_entry == NULL, "should only be called once"); 696 // If the code cache is full, we may reenter this function for the
697 // leftover methods that weren't linked.
698 if (_i2i_entry != NULL) return;
699
697 assert(_adapter == NULL, "init'd to NULL" ); 700 assert(_adapter == NULL, "init'd to NULL" );
698 assert( _code == NULL, "nothing compiled yet" ); 701 assert( _code == NULL, "nothing compiled yet" );
699 702
700 // Setup interpreter entrypoint 703 // Setup interpreter entrypoint
701 assert(this == h_method(), "wrong h_method()" ); 704 assert(this == h_method(), "wrong h_method()" );
715 // normal calls. For vtable calls life gets more complicated. When a 718 // normal calls. For vtable calls life gets more complicated. When a
716 // call-site goes mega-morphic we need adapters in all methods which can be 719 // call-site goes mega-morphic we need adapters in all methods which can be
717 // called from the vtable. We need adapters on such methods that get loaded 720 // called from the vtable. We need adapters on such methods that get loaded
718 // later. Ditto for mega-morphic itable calls. If this proves to be a 721 // later. Ditto for mega-morphic itable calls. If this proves to be a
719 // problem we'll make these lazily later. 722 // problem we'll make these lazily later.
720 (void) make_adapters(h_method, CHECK); 723 if (UseCompiler) (void) make_adapters(h_method, CHECK);
721 724
722 // ONLY USE the h_method now as make_adapter may have blocked 725 // ONLY USE the h_method now as make_adapter may have blocked
723 726
724 } 727 }
725 728