Refactor capi
authorJunghoon Park <jh9216.park@samsung.com>
Sat, 16 May 2020 05:49:48 +0000 (14:49 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Mon, 25 May 2020 04:28:15 +0000 (13:28 +0900)
Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
src/theme/api/theme_loader.cc

index 2c0daf5..7227e0a 100644 (file)
@@ -48,8 +48,7 @@ class ThemeEventHandler : public IThemeEvent {
   virtual ~ThemeEventHandler() = default;
   void OnThemeLoaded(const ThemeInfo* theme,
       const tizen_base::Bundle& args) override {
-    ThemeInfo* info = new ThemeInfo(*theme);
-    std::shared_ptr<ThemeInfo> shared_info(info);
+    std::shared_ptr<ThemeInfo> shared_info(new ThemeInfo(*theme));
     loaded_cb_(static_cast<theme_h>(&shared_info), userdata_);
   }
 
@@ -165,16 +164,15 @@ extern "C" EXPORT_API int theme_loader_add_event(theme_loader_h handle,
     return THEME_MANAGER_INVALID_PARAMETER;
   }
 
-  std::shared_ptr<IThemeEvent>* event_handler =
-      new (std::nothrow) std::shared_ptr<IThemeEvent>(
-            new (std::nothrow) ThemeEventHandler(loaded, unloaded, data));
-  if (event_handler == nullptr) {
+  std::shared_ptr<IThemeEvent> event_handler(new ThemeEventHandler(
+      loaded, unloaded, data));
+  if (event_handler.get() == nullptr) {
     LOG(ERROR) << "Out of memory";
     return THEME_MANAGER_OUT_OF_MEMORY;
   }
 
   auto* p = static_cast<ThemeInfoLoader*>(handle);
-  std::string* result = new std::string(p->AddEvent(*event_handler));
+  std::string* result = new std::string(p->AddEvent(std::move(event_handler)));
   *event_h = static_cast<theme_loader_event_h>(result);
 
   return THEME_MANAGER_ERROR_NONE;