aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-12-16 13:47:43 +0000
committerMichael Williamson <mike@zwobble.org>2023-12-16 13:47:43 +0000
commit355a31d207a28d66a03351498fefe33b4c358c95 (patch)
tree6b083deb2142cf1dc77d437ec014e9efb217a40c /src/main/java
parent65f831f835bca4c75273a4a2e6b833f62196b349 (diff)
Make structs GC objects
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/patio/PatioCodeGenStructs.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioCodeGenStructs.java b/src/main/java/org/shedlang/compiler/patio/PatioCodeGenStructs.java
index 67461ff6..36274023 100644
--- a/src/main/java/org/shedlang/compiler/patio/PatioCodeGenStructs.java
+++ b/src/main/java/org/shedlang/compiler/patio/PatioCodeGenStructs.java
@@ -166,9 +166,9 @@ public class PatioCodeGenStructs {
}
private static PatioDataLayout unknownStructDataLayout() {
- return PatioDataLayouts.struct(List.of(
+ return PatioCodeGenGc.gcObjectDataLayout(PatioDataLayouts.struct(List.of(
PatioDataLayouts.INT
- ));
+ )));
}
private static PatioDataLayout structDataLayout(
@@ -177,18 +177,19 @@ public class PatioCodeGenStructs {
) {
var structTypeInfo = context.structTypeInfo(type);
- return PatioDataLayouts.struct(List.of(
+ return PatioCodeGenGc.gcObjectDataLayout(PatioDataLayouts.struct(List.of(
PatioDataLayouts.INT,
PatioDataLayouts.struct(Lists.repeat(
PatioDataLayouts.INT,
structTypeInfo.fieldCount()
))
- ));
+ )));
}
- private static final List<Integer> TAG_OFFSET = List.of(0);
+ private static final List<Integer> TAG_OFFSET
+ = PatioCodeGenGc.gcObjectOffset(List.of(0));
private static List<Integer> fieldOffset(int fieldIndex) {
- return List.of(1, fieldIndex);
+ return PatioCodeGenGc.gcObjectOffset(List.of(1, fieldIndex));
}
}