Mercurial > hg > graal-jvmci-8
diff graal/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicLocations.java @ 18795:e9cbe1618733
Truffle: refactor size calculation in location allocator to visitor pattern
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Wed, 07 Jan 2015 15:11:38 +0100 |
parents | 2c3666f44855 |
children |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicLocations.java Mon Jan 05 19:01:01 2015 +0100 +++ b/graal/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicLocations.java Wed Jan 07 15:11:38 2015 +0100 @@ -164,6 +164,11 @@ public int objectArrayCount() { return OBJECT_SIZE; } + + @Override + public final void accept(LocationVisitor locationVisitor) { + locationVisitor.visitObjectArray(index, OBJECT_SIZE); + } } public static class ObjectFieldLocation extends MethodHandleFieldLocation implements ObjectLocation { @@ -209,6 +214,11 @@ public int objectFieldCount() { return OBJECT_SIZE; } + + @Override + public final void accept(LocationVisitor locationVisitor) { + locationVisitor.visitObjectField(getIndex(), OBJECT_SIZE); + } } public abstract static class SimpleObjectFieldLocation extends FieldLocation implements ObjectLocation { @@ -240,6 +250,11 @@ public int objectFieldCount() { return OBJECT_SIZE; } + + @Override + public final void accept(LocationVisitor locationVisitor) { + locationVisitor.visitObjectField(getIndex(), OBJECT_SIZE); + } } public static class LongArrayLocation extends ArrayLocation implements InternalLongLocation { @@ -302,7 +317,7 @@ return value instanceof Long || (allowInt && value instanceof Integer); } - public Class<Long> getType() { + public final Class<Long> getType() { return long.class; } @@ -310,6 +325,11 @@ public int primitiveArrayCount() { return LONG_SIZE; } + + @Override + public final void accept(LocationVisitor locationVisitor) { + locationVisitor.visitPrimitiveArray(getIndex(), LONG_SIZE); + } } public static class LongFieldLocation extends MethodHandleFieldLocation implements InternalLongLocation { @@ -385,9 +405,14 @@ return LONG_SIZE; } - public Class<Long> getType() { + public final Class<Long> getType() { return long.class; } + + @Override + public final void accept(LocationVisitor locationVisitor) { + locationVisitor.visitPrimitiveField(getIndex(), LONG_SIZE); + } } public static class LongLocationDecorator extends PrimitiveLocationDecorator implements InternalLongLocation { @@ -480,9 +505,14 @@ return LONG_SIZE; } - public Class<Long> getType() { + public final Class<Long> getType() { return long.class; } + + @Override + public final void accept(LocationVisitor locationVisitor) { + locationVisitor.visitPrimitiveField(getIndex(), LONG_SIZE); + } } public abstract static class PrimitiveLocationDecorator extends LocationImpl { @@ -521,6 +551,11 @@ public final int primitiveArrayCount() { return ((LocationImpl) longLocation).primitiveArrayCount(); } + + @Override + public final void accept(LocationVisitor locationVisitor) { + ((LocationImpl) longLocation).accept(locationVisitor); + } } public static class IntLocationDecorator extends PrimitiveLocationDecorator implements IntLocation {