Mercurial > hg > graal-jvmci-8
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 |