changeset 7712:0a346c23cbd5

Add ability to create materialized frame to Truffle runtime.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 05 Feb 2013 15:27:32 +0100
parents 960a15fea39a
children fec77d5cd187
files graal/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleRuntime.java graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultTruffleRuntime.java
diffstat 2 files changed, 26 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleRuntime.java	Tue Feb 05 15:19:17 2013 +0100
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleRuntime.java	Tue Feb 05 15:27:32 2013 +0100
@@ -58,4 +58,20 @@
      * @return the new call target object
      */
     CallTarget createCallTarget(RootNode rootNode, FrameDescriptor frameDescriptor);
+
+    /**
+     * Creates a new materialized frame object that can be used to store values.
+     * 
+     * @return the newly created materialized frame object
+     */
+    MaterializedFrame createMaterializedFrame(Arguments arguments);
+
+    /**
+     * Creates a new materialized frame object with the given frame descriptor that can be used to
+     * store values.
+     * 
+     * @param frameDescriptor the frame descriptor describing this frame's values
+     * @return the newly created materialized frame object
+     */
+    MaterializedFrame createMaterializedFrame(Arguments arguments, FrameDescriptor frameDescriptor);
 }
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultTruffleRuntime.java	Tue Feb 05 15:19:17 2013 +0100
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultTruffleRuntime.java	Tue Feb 05 15:27:32 2013 +0100
@@ -46,4 +46,14 @@
     public CallTarget createCallTarget(RootNode rootNode) {
         return createCallTarget(rootNode, new FrameDescriptor());
     }
+
+    @Override
+    public MaterializedFrame createMaterializedFrame(Arguments arguments) {
+        return createMaterializedFrame(arguments, new FrameDescriptor());
+    }
+
+    @Override
+    public MaterializedFrame createMaterializedFrame(Arguments arguments, FrameDescriptor frameDescriptor) {
+        return new DefaultMaterializedFrame(new DefaultVirtualFrame(frameDescriptor, null, arguments));
+    }
 }