From 6303d3ba3e55b7ca005fec580b906abef6eed76c Mon Sep 17 00:00:00 2001 From: hedaoyuan Date: Wed, 15 Nov 2017 22:18:29 +0800 Subject: [PATCH] Fix crashes due to multiple calls to paddle_init --- paddle/capi/Main.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/paddle/capi/Main.cpp b/paddle/capi/Main.cpp index 78c43949dfe32..bb8249a5511c0 100644 --- a/paddle/capi/Main.cpp +++ b/paddle/capi/Main.cpp @@ -29,6 +29,9 @@ static void initPaddle(int argc, char** argv) { extern "C" { paddle_error paddle_init(int argc, char** argv) { + static bool isInit = false; + if (isInit) return kPD_NO_ERROR; + std::vector realArgv; realArgv.reserve(argc + 1); realArgv.push_back(strdup("")); @@ -37,6 +40,7 @@ paddle_error paddle_init(int argc, char** argv) { } initPaddle(argc + 1, realArgv.data()); free(realArgv[0]); + isInit = true; return kPD_NO_ERROR; } }