reduce flash footprint by smarter code generation #4163

This commit is contained in:
rusefillc 2022-05-15 19:36:40 -04:00
parent 9000af369b
commit 95ea662735
3 changed files with 9 additions and 10 deletions

Binary file not shown.

View File

@ -42,7 +42,14 @@ public class GetConfigValueConsumer implements ConfigurationConsumer {
; ;
static final String GET_METHOD_FOOTER = "\treturn EFI_ERROR_CODE;\n" + "}\n"; static final String GET_METHOD_FOOTER = "\treturn EFI_ERROR_CODE;\n" + "}\n";
private static final String SET_METHOD_HEADER = "void setConfigValueByName(const char *name, float value) {\n"; private static final String SET_METHOD_HEADER = "void setConfigValueByName(const char *name, float value) {\n" +
"\t{\n" +
"\t\tplain_get_float_s * known = findFloat(name);\n" +
"\t\tif (known != nullptr) {\n" +
"\t\t\t*(float*)hackEngineConfigurationPointer(known->value) = value;\n" +
"\t\t}\n" +
"\t}\n" +
"\n";
private static final String SET_METHOD_FOOTER = "}\n"; private static final String SET_METHOD_FOOTER = "}\n";
private final StringBuilder getterBody = new StringBuilder(); private final StringBuilder getterBody = new StringBuilder();
private final StringBuilder setterBody = new StringBuilder(); private final StringBuilder setterBody = new StringBuilder();
@ -97,9 +104,6 @@ public class GetConfigValueConsumer implements ConfigurationConsumer {
if (TypesHelper.isFloat(cf.getType())) { if (TypesHelper.isFloat(cf.getType())) {
allFloatAddresses.append("\t{" + quote(userName) + ", &engineConfiguration->" + userName + "},\n"); allFloatAddresses.append("\t{" + quote(userName) + ", &engineConfiguration->" + userName + "},\n");
setterBody.append(getCompareName(userName));
String str = getAssignment(cf, javaName, "");
setterBody.append(str);
} else { } else {
getterBody.append(getCompareName(userName)); getterBody.append(getCompareName(userName));
getterBody.append("\t\treturn " + javaName + cf.getName() + ";\n"); getterBody.append("\t\treturn " + javaName + cf.getName() + ";\n");

View File

@ -58,12 +58,7 @@ public class GetConfigValueConsumerTest {
GetConfigValueConsumer getConfigValueConsumer = new GetConfigValueConsumer(null); GetConfigValueConsumer getConfigValueConsumer = new GetConfigValueConsumer(null);
state.readBufferedReader(test, getConfigValueConsumer); state.readBufferedReader(test, getConfigValueConsumer);
assertEquals("\tif (strEqualCaseInsensitive(name, \"iat.config.tempC_1\"))\n" + assertEquals("\tif (strEqualCaseInsensitive(name, \"iat.adcChannel\"))\n" +
"\t{\n" +
"\t\tconfig->iat.config.tempC_1 = value;\n" +
"\t\treturn;\n" +
"\t}\n" +
"\tif (strEqualCaseInsensitive(name, \"iat.adcChannel\"))\n" +
"\t{\n" + "\t{\n" +
"\t\tconfig->iat.adcChannel = (int)value;\n" + "\t\tconfig->iat.adcChannel = (int)value;\n" +
"\t\treturn;\n" + "\t\treturn;\n" +