From: Hwankyu Jhun Date: Fri, 2 Jun 2023 06:50:27 +0000 (+0000) Subject: Fix wrong implementation of launchpad library X-Git-Tag: accepted/tizen/unified/20230605.170333~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=94fdbfb2afe8ef5b4ac8ccf3949db7d9d9d23a8b;p=platform%2Fcore%2Fappfw%2Flaunchpad.git Fix wrong implementation of launchpad library The context pointer must not be the unique_ptr. If it's the unique_ptr, the unique_ptr tries to release the pointer. Change-Id: I3e961ebdae813e685095a4b9c74b1221c8799860 Signed-off-by: Hwankyu Jhun --- diff --git a/src/lib/launchpad/launchpad_loader.cc b/src/lib/launchpad/launchpad_loader.cc index b9092afb..6ee82f17 100644 --- a/src/lib/launchpad/launchpad_loader.cc +++ b/src/lib/launchpad/launchpad_loader.cc @@ -45,12 +45,17 @@ const uint32_t kMaxRetryingCount = 600; constexpr const char kLaunchpadLoaderSocketName[] = ".launchpad-type"; tizen_base::Bundle loader_bundle; -std::unique_ptr context; +LaunchpadLoader* context = nullptr; } // namespace LaunchpadLoader::LaunchpadLoader(int argc, char** argv) : argc_(argc), argv_(argv) { + if (context != nullptr) { + _E("Already exists"); + THROW(-EALREADY); + } + if (argc_ < 4) { _E("Too few argument"); THROW(-EINVAL); @@ -70,7 +75,7 @@ LaunchpadLoader::LaunchpadLoader(int argc, char** argv) loader_id_ = atoi(argv_[LOADER_ARG_ID]); _W("loader type: %d, loader id: %d", loader_type_, loader_id_); - context.reset(this); + context = this; } LaunchpadLoader::~LaunchpadLoader() { @@ -80,6 +85,8 @@ LaunchpadLoader::~LaunchpadLoader() { free(app_argv_); } + + context = nullptr; } void LaunchpadLoader::Run(loader_lifecycle_callback_s* callback,