GP-5514 fix hard coded struct field ordinal for golang 1.23+

This commit is contained in:
dev747368
2025-03-21 16:42:30 +00:00
parent 6cc201b572
commit 937b1035c9
2 changed files with 12 additions and 1 deletions
@@ -112,7 +112,9 @@ public class GoInterfaceType extends GoType {
StructureDataType itabStruct = new StructureDataType(ifaceCP, ifaceName + "_itab", 0, dtm);
itabStruct.replaceWith(genericItabStruct);
int funDTCOrdinal = 4; // a bit of a hack, could also lookup by name "Fun"
FieldMappingInfo<GoItab> funFMI =
programContext.getStructureMappingInfo(GoItab.class).getFieldInfo("fun");
int funDTCOrdinal = funFMI.getDtc().getOrdinal();
//DataTypeComponentImpl funDtc = itabStruct.getComponent(funDTCOrdinal);
itabStruct.delete(funDTCOrdinal);
@@ -130,6 +130,15 @@ public class StructureMappingInfo<T> {
return fields;
}
public FieldMappingInfo<T> getFieldInfo(String javaFieldName) throws IOException {
for (FieldMappingInfo<T> fmi : fields) {
if (fmi.getField().getName().equals(javaFieldName)) {
return fmi;
}
}
throw new IOException("Java field name not found: " + javaFieldName);
}
public List<Method> getAfterMethods() {
return afterMethods;
}