From 9e962002bef14cb3d41adabc113507998256d974 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Tue, 17 Apr 2018 15:35:19 +0900 Subject: [PATCH] Fix memory leak about generated codes Change-Id: Ie6654325a8b3512d37d3cbaf26fce6ce00672179 Signed-off-by: Hwankyu Jhun --- idlc/c_gen/c_body_gen_base.cc | 3 +++ idlc/c_gen/c_body_gen_base_cb.h | 1 + 2 files changed, 4 insertions(+) diff --git a/idlc/c_gen/c_body_gen_base.cc b/idlc/c_gen/c_body_gen_base.cc index b87a06a..904451e 100644 --- a/idlc/c_gen/c_body_gen_base.cc +++ b/idlc/c_gen/c_body_gen_base.cc @@ -981,6 +981,9 @@ std::string CBodyGeneratorBase::GetClonerString(const std::string& id, } else if (type.ToString() == "array") { str += GenTemplateString(ReplaceAll(CB_CLONER_ARRAY_BLOCK, "##", id), [&]()->std::string { + return GetStructIdWithNamespace(st); + }, + [&]()->std::string { return GetSetterString(*type.GetMetaType(), "handle->" + id + "[i]", "h->" + id + "[i]"); } diff --git a/idlc/c_gen/c_body_gen_base_cb.h b/idlc/c_gen/c_body_gen_base_cb.h index 88f66bf..94b374c 100644 --- a/idlc/c_gen/c_body_gen_base_cb.h +++ b/idlc/c_gen/c_body_gen_base_cb.h @@ -344,6 +344,7 @@ do { handle->## = calloc(h->##_size, sizeof(*h->##)); if (!handle->##) { dlog_print(DLOG_ERROR, LOG_TAG, "Out of memory"); + rpc_port_$$_destroy(handle); return -1; } handle->##_size = h->##_size; -- 2.7.4