|
|
@ -545,7 +545,7 @@ public final class Encoder implements ActualParameterVisitor<Frame, Integer>, |
|
|
|
public Integer visitRecordTypeDenoter(RecordTypeDenoter ast, Frame frame) { |
|
|
|
public Integer visitRecordTypeDenoter(RecordTypeDenoter ast, Frame frame) { |
|
|
|
int typeSize; |
|
|
|
int typeSize; |
|
|
|
if (ast.entity == null) { |
|
|
|
if (ast.entity == null) { |
|
|
|
typeSize = ast.FT.visit(this, null); |
|
|
|
typeSize = ast.FT.visit(this, frame); |
|
|
|
ast.entity = new TypeRepresentation(typeSize); |
|
|
|
ast.entity = new TypeRepresentation(typeSize); |
|
|
|
writeTableDetails(ast); |
|
|
|
writeTableDetails(ast); |
|
|
|
} else { |
|
|
|
} else { |
|
|
@ -556,6 +556,10 @@ public final class Encoder implements ActualParameterVisitor<Frame, Integer>, |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public Integer visitMultipleFieldTypeDenoter(MultipleFieldTypeDenoter ast, Frame frame) { |
|
|
|
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(); |
|
|
|
var offset = frame.getSize(); |
|
|
|
int fieldSize; |
|
|
|
int fieldSize; |
|
|
|
if (ast.entity == null) { |
|
|
|
if (ast.entity == null) { |
|
|
|