From 32cb06cd517057b5698e43e5310f2a824b47762a Mon Sep 17 00:00:00 2001 From: nitrix Date: Sat, 7 Mar 2020 00:14:06 +0100 Subject: [PATCH] implement method that returns the index of a field by name --- .../de/hsrm/compiler/Klang/helper/Helper.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/hsrm/compiler/Klang/helper/Helper.java b/src/main/java/de/hsrm/compiler/Klang/helper/Helper.java index c468683..648c4e8 100644 --- a/src/main/java/de/hsrm/compiler/Klang/helper/Helper.java +++ b/src/main/java/de/hsrm/compiler/Klang/helper/Helper.java @@ -42,20 +42,24 @@ public class Helper { throw new RuntimeException("Struct " + structDef.name + " does not contain field " + path[pathIndex]); } - public static int getFieldOffset(StructDefinition structDef, int fieldIndex) { - return fieldIndex * 8; - } - - public static int getFieldOffset(StructDefinition structDef, String fieldName) { + public static int getFieldIndex(StructDefinition structDef, String fieldName) { for (int i = 0; i < structDef.fields.length; i++) { if (structDef.fields[i].name.equals(fieldName)) { - return i * 8; + return i; } } return -1; } + public static int getFieldOffset(StructDefinition structDef, int fieldIndex) { + return fieldIndex * 8; + } + + public static int getFieldOffset(StructDefinition structDef, String fieldName) { + return getFieldIndex(structDef, fieldName) * 8; + } + public static int getFieldSizeBytes(StructDefinition structDef) { return structDef.fields.length * 8; }