1.1 --- a/src/share/vm/code/compiledIC.hpp Thu Jun 26 11:36:58 2014 +0200 1.2 +++ b/src/share/vm/code/compiledIC.hpp Tue Jul 01 09:03:55 2014 +0200 1.3 @@ -150,6 +150,9 @@ 1.4 bool _is_optimized; // an optimized virtual call (i.e., no compiled IC) 1.5 1.6 CompiledIC(nmethod* nm, NativeCall* ic_call); 1.7 + CompiledIC(RelocIterator* iter); 1.8 + 1.9 + void initialize_from_iter(RelocIterator* iter); 1.10 1.11 static bool is_icholder_entry(address entry); 1.12 1.13 @@ -183,6 +186,7 @@ 1.14 friend CompiledIC* CompiledIC_before(nmethod* nm, address return_addr); 1.15 friend CompiledIC* CompiledIC_at(nmethod* nm, address call_site); 1.16 friend CompiledIC* CompiledIC_at(Relocation* call_site); 1.17 + friend CompiledIC* CompiledIC_at(RelocIterator* reloc_iter); 1.18 1.19 // This is used to release CompiledICHolder*s from nmethods that 1.20 // are about to be freed. The callsite might contain other stale 1.21 @@ -263,6 +267,13 @@ 1.22 return c_ic; 1.23 } 1.24 1.25 +inline CompiledIC* CompiledIC_at(RelocIterator* reloc_iter) { 1.26 + assert(reloc_iter->type() == relocInfo::virtual_call_type || 1.27 + reloc_iter->type() == relocInfo::opt_virtual_call_type, "wrong reloc. info"); 1.28 + CompiledIC* c_ic = new CompiledIC(reloc_iter); 1.29 + c_ic->verify(); 1.30 + return c_ic; 1.31 +} 1.32 1.33 //----------------------------------------------------------------------------- 1.34 // The CompiledStaticCall represents a call to a static method in the compiled