|
From: <izn...@us...> - 2006-08-27 03:09:05
|
Revision: 7 Author: iznogood Date: 2006-08-26 20:09:00 -0700 (Sat, 26 Aug 2006) ViewCVS: http://svn.sourceforge.net/parakeet/?rev=7&view=rev Log Message: ----------- M src/net/izno/parakeet/pmc/Sub.java *) Cache compiled method. Modified Paths: -------------- trunk/src/net/izno/parakeet/pmc/Sub.java Modified: trunk/src/net/izno/parakeet/pmc/Sub.java =================================================================== --- trunk/src/net/izno/parakeet/pmc/Sub.java 2006-08-27 02:03:39 UTC (rev 6) +++ trunk/src/net/izno/parakeet/pmc/Sub.java 2006-08-27 03:09:00 UTC (rev 7) @@ -5,6 +5,8 @@ import net.izno.parakeet.CodeRunner; import net.izno.parakeet.Subroutine; +import com.ibm.JikesRVM.VM_CompiledMethod; + public class Sub extends PMC { private java.lang.String sub_name; private int start_offs, end_offs; @@ -12,7 +14,7 @@ private PMC lexInfo = null; public int flags; - private Subroutine pc = null; + private VM_CompiledMethod cm = null; public java.lang.String get_string() { return sub_name; @@ -23,13 +25,15 @@ } public PMC invoke(PMC arguments, PMC userStack, PMC registerStack) { - if (pc == null) - pc = new Subroutine(get_pbc(), sub_name, start_offs, + if (cm == null) { + Subroutine pc = new Subroutine(get_pbc(), sub_name, start_offs, end_offs, Parakeet.findOrCreateNamespace(namespace)); - pc.compile(); + pc.compile(); + cm = pc.getCurrentCompiledMethod(); + } return CodeRunner - .invoke(pc.getCurrentCompiledMethod().getEntryCodeArray(), - arguments, userStack, registerStack, lexInfo); + .invoke(cm.getEntryCodeArray(), arguments, userStack, + registerStack, lexInfo); } public void thaw(net.izno.parakeet.SegmentData data) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |