# HG changeset patch # User Lukas Stadler # Date 1407506079 -7200 # Node ID 9d55732d0880d933940a4b3cfe44bef978f201bb # Parent 734247341e6eae8198ce1d4cf0d20d0610260a1b additional info field on FrameSlot nodes (for language-specific use) diff -r 734247341e6e -r 9d55732d0880 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameDescriptor.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameDescriptor.java Fri Aug 08 15:52:34 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameDescriptor.java Fri Aug 08 15:54:39 2014 +0200 @@ -53,13 +53,17 @@ } public FrameSlot addFrameSlot(Object identifier) { - return addFrameSlot(identifier, FrameSlotKind.Illegal); + return addFrameSlot(identifier, null, FrameSlotKind.Illegal); } public FrameSlot addFrameSlot(Object identifier, FrameSlotKind kind) { + return addFrameSlot(identifier, null, kind); + } + + public FrameSlot addFrameSlot(Object identifier, Object info, FrameSlotKind kind) { CompilerAsserts.neverPartOfCompilation("interpreter-only. includes hashmap operations."); assert !identifierToSlotMap.containsKey(identifier); - FrameSlot slot = new FrameSlot(this, identifier, slots.size(), kind); + FrameSlot slot = new FrameSlot(this, identifier, info, slots.size(), kind); slots.add(slot); identifierToSlotMap.put(identifier, slot); updateVersion(); diff -r 734247341e6e -r 9d55732d0880 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlot.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlot.java Fri Aug 08 15:52:34 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlot.java Fri Aug 08 15:54:39 2014 +0200 @@ -34,12 +34,14 @@ private final FrameDescriptor descriptor; private final Object identifier; + private final Object info; private final int index; @CompilationFinal private FrameSlotKind kind; - public FrameSlot(FrameDescriptor descriptor, Object identifier, int index, FrameSlotKind kind) { + public FrameSlot(FrameDescriptor descriptor, Object identifier, Object info, int index, FrameSlotKind kind) { this.descriptor = descriptor; this.identifier = identifier; + this.info = info; this.index = index; this.kind = kind; } @@ -48,6 +50,10 @@ return identifier; } + public Object getInfo() { + return info; + } + public int getIndex() { return index; }