From 82a5535d19ca1a4628808f04e57b4dac04817738 Mon Sep 17 00:00:00 2001 From: Sandy Brownlee Date: Wed, 31 Aug 2022 16:34:48 +0100 Subject: [PATCH] Fixed nullpointer caused by missing Frame object --- .../src/main/java/triangle/codeGenerator/Encoder.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Triangle.Compiler/src/main/java/triangle/codeGenerator/Encoder.java b/Triangle.Compiler/src/main/java/triangle/codeGenerator/Encoder.java index f3a650c..3066815 100644 --- a/Triangle.Compiler/src/main/java/triangle/codeGenerator/Encoder.java +++ b/Triangle.Compiler/src/main/java/triangle/codeGenerator/Encoder.java @@ -545,7 +545,7 @@ public final class Encoder implements ActualParameterVisitor, public Integer visitRecordTypeDenoter(RecordTypeDenoter ast, Frame frame) { int typeSize; if (ast.entity == null) { - typeSize = ast.FT.visit(this, null); + typeSize = ast.FT.visit(this, frame); ast.entity = new TypeRepresentation(typeSize); writeTableDetails(ast); } else { @@ -556,6 +556,10 @@ public final class Encoder implements ActualParameterVisitor, @Override public Integer visitMultipleFieldTypeDenoter(MultipleFieldTypeDenoter ast, Frame frame) { + if (frame == null) { // in this case, we're just using the frame to wrap up the size + frame = Frame.Initial; + } + var offset = frame.getSize(); int fieldSize; if (ast.entity == null) {