Fix memory leak in code generated by j2s code.

Closes #17.
This commit is contained in:
Jordan Bancino 2023-11-20 09:51:08 -05:00
parent bc67393036
commit 29070c8f41
2 changed files with 8 additions and 2 deletions

View file

@ -660,11 +660,15 @@ Main(Array * args)
StreamPrintf(implFile, " }\n\n");
if (StrEquals(fieldType, "array"))
{
StreamPrintf(implFile, " out->%s = JsonValueAsArray(JsonValueDuplicate(val));\n", key);
StreamPrintf(implFile, " val = JsonValueDuplicate(val);\n");
StreamPrintf(implFile, " out->%s = JsonValueAsArray(val);\n", key);
StreamPrintf(implFile, " Free(val); /* Not JsonValueFree() because we want the inner value. */\n");
}
else if (StrEquals(fieldType, "object"))
{
StreamPrintf(implFile, " out->%s = JsonValueAsObject(JsonValueDuplicate(val));\n", key);
StreamPrintf(implFile, " val = JsonValueDuplicate(val);\n");
StreamPrintf(implFile, " out->%s = JsonValueAsObject(val);\n", key);
StreamPrintf(implFile, " Free(val); /* Not JsonValueFree() because we want the inner value. */\n");
}
else if (*fieldType == '[' && fieldType[strlen(fieldType) - 1] == ']')
{