Mercurial > hg > truffle
diff graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultVirtualFrame.java @ 12643:856a9864ed93
Frame: add is<Type> methods.
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Wed, 30 Oct 2013 20:01:50 +0100 |
parents | 139b84d713bc |
children | 833f8e96d0a5 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultVirtualFrame.java Wed Oct 30 17:31:13 2013 +0100 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultVirtualFrame.java Wed Oct 30 20:01:50 2013 +0100 @@ -200,12 +200,46 @@ } } - @Override - public boolean isInitialized(FrameSlot slot) { + private byte getTag(FrameSlot slot) { int slotIndex = slot.getIndex(); if (slotIndex >= tags.length) { resize(); } - return tags[slotIndex] != 0; + return tags[slotIndex]; + } + + @Override + public boolean isObject(FrameSlot slot) { + return getTag(slot) == FrameSlotKind.Object.ordinal(); + } + + @Override + public boolean isByte(FrameSlot slot) { + return getTag(slot) == FrameSlotKind.Byte.ordinal(); + } + + @Override + public boolean isBoolean(FrameSlot slot) { + return getTag(slot) == FrameSlotKind.Boolean.ordinal(); + } + + @Override + public boolean isInt(FrameSlot slot) { + return getTag(slot) == FrameSlotKind.Int.ordinal(); + } + + @Override + public boolean isLong(FrameSlot slot) { + return getTag(slot) == FrameSlotKind.Long.ordinal(); + } + + @Override + public boolean isFloat(FrameSlot slot) { + return getTag(slot) == FrameSlotKind.Float.ordinal(); + } + + @Override + public boolean isDouble(FrameSlot slot) { + return getTag(slot) == FrameSlotKind.Double.ordinal(); } }