reduce flash footprint by smarter code generation #4163

This commit is contained in:
rusefillc 2022-12-03 14:39:04 -05:00
parent 854baf09ea
commit 990d5f5d86
2 changed files with 19 additions and 25 deletions

View File

@ -36,12 +36,8 @@ public class GetConfigValueConsumer implements ConfigurationConsumer {
private static final String GET_METHOD_HEADER =
"float getConfigValueByName(const char *name) {\n" +
"\t{\n" +
"\t\tplain_get_float_s * known = findFloat(name);\n" +
"\t\tif (known != nullptr) {\n" +
"\t\t\treturn *(float*)hackEngineConfigurationPointer(known->value);\n" +
"\t\t}\n" +
"\t}\n"
"\t{\n"
;
static final String GET_METHOD_FOOTER = "\treturn EFI_ERROR_CODE;\n" + "}\n";
@ -105,10 +101,11 @@ public class GetConfigValueConsumer implements ConfigurationConsumer {
javaName = "engineConfiguration->" + javaName.substring(CONFIG_ENGINE_CONFIGURATION.length());
getterPairs.add(new Pair<>(userName, javaName + cf.getName()));
if (TypesHelper.isFloat(cf.getType())) {
allFloatAddresses.append("\t{" + quote(userName) + ", &engineConfiguration->" + userName + "},\n");
} else {
getterPairs.add(new Pair<>(userName, javaName + cf.getName()));
setterBody.append(getCompareName(userName));
String str = getAssignment(cf, javaName, "(int)");

View File

@ -31,11 +31,6 @@ public class GetConfigValueConsumerTest {
assertEquals(
"float getConfigValueByName(const char *name) {\n" +
"\t{\n" +
"\t\tplain_get_float_s * known = findFloat(name);\n" +
"\t\tif (known != nullptr) {\n" +
"\t\t\treturn *(float*)hackEngineConfigurationPointer(known->value);\n" +
"\t\t}\n" +
"\t}\n" +
"\treturn EFI_ERROR_CODE;\n" +
"}\n", getConfigValueConsumer.getComleteGetterBody());
}
@ -71,13 +66,10 @@ public class GetConfigValueConsumerTest {
assertEquals("float getConfigValueByName(const char *name) {\n" +
"\t{\n" +
"\t\tplain_get_float_s * known = findFloat(name);\n" +
"\t\tif (known != nullptr) {\n" +
"\t\t\treturn *(float*)hackEngineConfigurationPointer(known->value);\n" +
"\t\t}\n" +
"\t}\n" +
"\tint hash = djb2lowerCase(name);\n" +
"\tswitch(hash) {\n" +
"\t\tcase -672272162:\n" +
"\t\t\treturn config->iat.config.tempC_1;\n" +
"\t\tcase -1237776078:\n" +
"\t\t\treturn config->iat.adcChannel;\n" +
"\t}\n" +
@ -162,21 +154,26 @@ public class GetConfigValueConsumerTest {
"}\n" +
"float getConfigValueByName(const char *name) {\n" +
"\t{\n" +
"\t\tplain_get_float_s * known = findFloat(name);\n" +
"\t\tif (known != nullptr) {\n" +
"\t\t\treturn *(float*)hackEngineConfigurationPointer(known->value);\n" +
"\t\t}\n" +
"\t}\n" +
"\tint hash = djb2lowerCase(name);\n" +
"\tswitch(hash) {\n" +
"\t\tcase -1832527325:\n" +
"\t\t\treturn config->clt.config.tempC_1;\n" +
"\t\tcase 1819278123:\n" +
"\t\t\treturn config->clt.config.map.sensor.highValue;\n" +
"\t\tcase 581685574:\n" +
"\t\t\treturn config->clt.config.map.sensor.hwChannel;\n" +
"\t\tcase 382574846:\n" +
"\t\t\treturn config->clt.config.injector.flow;\n" +
"\t\tcase -653172717:\n" +
"\t\t\treturn config->clt.config.bias_resistor;\n" +
"\t\tcase -1144186889:\n" +
"\t\t\treturn config->clt.adcChannel;\n" +
"\t\tcase -1571463185:\n" +
"\t\t\treturn config->issue_294_31;\n" +
"\t\tcase 727098956:\n" +
"\t\t\treturn config->baseFuel;\n" +
"\t\tcase -1120008897:\n" +
"\t\t\treturn config->afr_type;\n" +
"\t\tcase -685727673:\n" +
"\t\t\treturn config->speedToRpmRatio;\n" +
"\t\tcase 1694412179:\n" +