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_);
}
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;