1.1 --- a/src/share/vm/opto/callnode.cpp Mon Dec 23 10:26:08 2013 -0800 1.2 +++ b/src/share/vm/opto/callnode.cpp Fri Dec 20 13:51:14 2013 +0100 1.3 @@ -595,6 +595,18 @@ 1.4 } 1.5 } 1.6 1.7 +// Adapt offsets in in-array after adding or removing an edge. 1.8 +// Prerequisite is that the JVMState is used by only one node. 1.9 +void JVMState::adapt_position(int delta) { 1.10 + for (JVMState* jvms = this; jvms != NULL; jvms = jvms->caller()) { 1.11 + jvms->set_locoff(jvms->locoff() + delta); 1.12 + jvms->set_stkoff(jvms->stkoff() + delta); 1.13 + jvms->set_monoff(jvms->monoff() + delta); 1.14 + jvms->set_scloff(jvms->scloff() + delta); 1.15 + jvms->set_endoff(jvms->endoff() + delta); 1.16 + } 1.17 +} 1.18 + 1.19 //============================================================================= 1.20 uint CallNode::cmp( const Node &n ) const 1.21 { return _tf == ((CallNode&)n)._tf && _jvms == ((CallNode&)n)._jvms; }