Free the memory allocated by mlirOperationStateAddXXX methods in mlirOperationCreate.

Previously, the memory leaks on heap. Since the MlirOperationState is not intended to be used again after mlirOperationCreate, the patch simplify frees the memory in mlirOperationCreate instead of creating any new API.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D85629
This commit is contained in:
Jing Pu 2020-08-10 10:32:24 +02:00 committed by Alex Zinenko
parent 0d58d9e8fb
commit 69eb7e36aa
1 changed files with 6 additions and 0 deletions

View File

@ -176,6 +176,12 @@ MlirOperation mlirOperationCreate(const MlirOperationState *state) {
for (unsigned i = 0; i < state->nRegions; ++i)
cppState.addRegion(std::unique_ptr<Region>(unwrap(state->regions[i])));
free(state->results);
free(state->operands);
free(state->regions);
free(state->successors);
free(state->attributes);
return wrap(Operation::create(cppState));
}