Skip to content

Commit 3fbceee

Browse files
committed
Merge ExtLayoutStrategy into LayoutStrategy.
Remove ExtDefaultStrategy. Make ExtAllocator final.
1 parent a5257c0 commit 3fbceee

File tree

10 files changed

+78
-331
lines changed

10 files changed

+78
-331
lines changed

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ExtAllocator.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,11 @@
7474

7575
import sun.misc.Unsafe;
7676

77-
abstract class ExtAllocator extends BaseAllocator {
77+
final class ExtAllocator extends BaseAllocator {
7878

7979
/** Placeholder for when no value is available or no type speculation should be performed. */
8080
private static final Object NO_VALUE = new Object();
8181

82-
ExtAllocator(LayoutImpl layout) {
83-
super(layout);
84-
}
85-
8682
ExtAllocator(ShapeImpl shape) {
8783
super(shape);
8884
}
@@ -405,7 +401,7 @@ public Location locationForValue(Object value) {
405401
return locationForValue(value, 0);
406402
}
407403

408-
protected Location locationForValue(Object value, int putFlags) {
404+
Location locationForValue(Object value, int putFlags) {
409405
if (Flags.isConstant(putFlags)) {
410406
return constantLocation(value);
411407
} else if (Flags.isDeclaration(putFlags)) {

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ExtDefaultStrategy.java

Lines changed: 0 additions & 95 deletions
This file was deleted.

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ExtLayout.java

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,12 @@
6060

6161
final class ExtLayout extends LayoutImpl {
6262

63-
private final ExtLayoutStrategy strategy;
6463
private final List<FieldInfo> objectFields;
6564
private final List<FieldInfo> primitiveFields;
6665
private final int primitiveFieldMaxSize;
6766

68-
ExtLayout(Class<? extends DynamicObject> dynamicObjectClass, ExtLayoutStrategy strategy, LayoutInfo layoutInfo, int allowedImplicitCasts) {
67+
ExtLayout(Class<? extends DynamicObject> dynamicObjectClass, LayoutStrategy strategy, LayoutInfo layoutInfo, int allowedImplicitCasts) {
6968
super(dynamicObjectClass, strategy, allowedImplicitCasts);
70-
this.strategy = strategy;
7169

7270
this.objectFields = layoutInfo.objectFields;
7371
this.primitiveFields = layoutInfo.primitiveFields;
@@ -79,7 +77,7 @@ private static LayoutInfo getOrCreateLayoutInfo(Class<? extends DynamicObject> d
7977
return LayoutInfo.getOrCreateNewLayoutInfo(dynamicObjectClass, layoutLookup);
8078
}
8179

82-
private static ExtLayout getOrCreateLayout(Class<? extends DynamicObject> clazz, Lookup layoutLookup, int implicitCastFlags, ExtLayoutStrategy strategy) {
80+
private static ExtLayout getOrCreateLayout(Class<? extends DynamicObject> clazz, Lookup layoutLookup, int implicitCastFlags, LayoutStrategy strategy) {
8381
Objects.requireNonNull(clazz, "DynamicObject layout class");
8482
Key key = new Key(clazz, implicitCastFlags, strategy);
8583
ExtLayout layout = (ExtLayout) LAYOUT_MAP.get(key);
@@ -91,7 +89,7 @@ private static ExtLayout getOrCreateLayout(Class<? extends DynamicObject> clazz,
9189
return layout == null ? newLayout : layout;
9290
}
9391

94-
static ExtLayout createLayoutImpl(Class<? extends DynamicObject> clazz, Lookup layoutLookup, int implicitCastFlags, ExtLayoutStrategy strategy) {
92+
static ExtLayout createLayoutImpl(Class<? extends DynamicObject> clazz, Lookup layoutLookup, int implicitCastFlags, LayoutStrategy strategy) {
9593
return getOrCreateLayout(clazz, layoutLookup, implicitCastFlags, strategy);
9694
}
9795

@@ -159,17 +157,6 @@ protected boolean hasPrimitiveExtensionArray() {
159157
return true;
160158
}
161159

162-
@Override
163-
public ShapeImpl.BaseAllocator createAllocator() {
164-
ExtLayout layout = this;
165-
return getStrategy().createAllocator(layout);
166-
}
167-
168-
@Override
169-
public ExtLayoutStrategy getStrategy() {
170-
return strategy;
171-
}
172-
173160
private static final class LayoutInfo {
174161

175162
final Class<? extends DynamicObject> clazz;

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ExtLayoutFactory.java

Lines changed: 0 additions & 56 deletions
This file was deleted.

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ExtLayoutStrategy.java

Lines changed: 0 additions & 121 deletions
This file was deleted.

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ abstract class Layout {
4949

5050
public static final String OPTION_PREFIX = "truffle.object.";
5151

52-
private static final LayoutFactory LAYOUT_FACTORY = new ExtLayoutFactory();
52+
private static final LayoutFactory LAYOUT_FACTORY = new LayoutFactory();
5353

5454
static final int INT_TO_DOUBLE_FLAG = 1;
5555
static final int INT_TO_LONG_FLAG = 2;

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutFactory.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,18 @@
4848
import com.oracle.truffle.api.Assumption;
4949
import com.oracle.truffle.api.CompilerAsserts;
5050

51-
abstract sealed class LayoutFactory permits ExtLayoutFactory {
51+
@SuppressWarnings("static-method")
52+
final class LayoutFactory {
5253

53-
protected abstract void registerLayoutClass(Class<? extends DynamicObject> subclass, Lookup layoutLookup);
54+
void registerLayoutClass(Class<? extends DynamicObject> subclass, Lookup layoutLookup) {
55+
ExtLayout.registerLayoutClass(subclass, layoutLookup);
56+
}
5457

55-
public abstract LayoutImpl createLayout(Class<? extends DynamicObject> layoutClass, Lookup layoutLookup, int implicitCastFlags);
58+
LayoutImpl createLayout(Class<? extends DynamicObject> layoutClass, Lookup layoutLookup, int implicitCastFlags) {
59+
return ExtLayout.createLayoutImpl(layoutClass, layoutLookup, implicitCastFlags);
60+
}
5661

57-
public final Shape createShape(Class<? extends DynamicObject> layoutClass,
62+
Shape createShape(Class<? extends DynamicObject> layoutClass,
5863
int implicitCastFlags,
5964
Object dynamicType,
6065
Object sharedData,

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutImpl.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@ public boolean isAllowedIntToLong() {
8989

9090
protected abstract int getPrimitiveFieldCount();
9191

92-
public abstract ShapeImpl.BaseAllocator createAllocator();
93-
9492
public LayoutStrategy getStrategy() {
9593
return strategy;
9694
}

0 commit comments

Comments
 (0)