hotspot/src/share/vm/opto/callnode.cpp
changeset 22865 3b8857d7b3cc
parent 22854 2787e48d6df9
child 22872 b6902ee5bc8d
--- a/hotspot/src/share/vm/opto/callnode.cpp	Wed Jan 08 11:24:00 2014 -0800
+++ b/hotspot/src/share/vm/opto/callnode.cpp	Fri Dec 20 13:51:14 2013 +0100
@@ -595,6 +595,18 @@
   }
 }
 
+// Adapt offsets in in-array after adding or removing an edge.
+// Prerequisite is that the JVMState is used by only one node.
+void JVMState::adapt_position(int delta) {
+  for (JVMState* jvms = this; jvms != NULL; jvms = jvms->caller()) {
+    jvms->set_locoff(jvms->locoff() + delta);
+    jvms->set_stkoff(jvms->stkoff() + delta);
+    jvms->set_monoff(jvms->monoff() + delta);
+    jvms->set_scloff(jvms->scloff() + delta);
+    jvms->set_endoff(jvms->endoff() + delta);
+  }
+}
+
 //=============================================================================
 uint CallNode::cmp( const Node &n ) const
 { return _tf == ((CallNode&)n)._tf && _jvms == ((CallNode&)n)._jvms; }