- another backend uodate from GZDoom to fix a memory leak in ZScript backend.

This commit is contained in:
Christoph Oelckers 2022-11-25 00:03:23 +01:00
parent b4e19ec6a0
commit d710407b08

View file

@ -723,16 +723,17 @@ ExpEmit FxVectorValue::Emit(VMFunctionBuilder *build)
{
if (e) vectorElements++;
}
assert(vectorElements > 0);
assert(vectorElements > 0 && vectorElements <= 4);
ExpEmit* tempVal = (ExpEmit*)calloc(vectorElements, sizeof(ExpEmit));
ExpEmit* val = (ExpEmit*)calloc(vectorElements, sizeof(ExpEmit));
// We got at most 4 elements
ExpEmit tempVal[4];
ExpEmit val[4];
// Init ExpEmit
for (int i = 0; i < vectorElements; ++i)
{
new(tempVal + i) ExpEmit(xyzw[i]->Emit(build));
new(val + i) ExpEmit(EmitKonst(build, tempVal[i]));
tempVal[i] = ExpEmit(xyzw[i]->Emit(build));
val[i] = EmitKonst(build, tempVal[i]);
}
{