From: hyunho Date: Fri, 3 Apr 2020 06:33:32 +0000 (+0900) Subject: Add missing memory management codes X-Git-Tag: submit/tizen_5.5/20200403.065918~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8f5016352a8f9350b1fb67d8a9b5b6adf0c1cd35;p=platform%2Fcore%2Fappfw%2Fwidget-viewer.git Add missing memory management codes Change-Id: Ia5da1b706de6bc1a5ce92cbbc6e823cffc0622b2 Signed-off-by: hyunho --- diff --git a/ambient-viewer/src/ambient-viewer.cc b/ambient-viewer/src/ambient-viewer.cc index a086dc91..86f058b0 100644 --- a/ambient-viewer/src/ambient-viewer.cc +++ b/ambient-viewer/src/ambient-viewer.cc @@ -48,7 +48,10 @@ AmbientViewer::AmbientViewer(Evas_Object* win) LOGD("CREATE AMBIENT VIEWER"); } -AmbientViewer::~AmbientViewer() = default; +AmbientViewer::~AmbientViewer() { + if (receive_signal_conn_) + aul_app_com_leave(receive_signal_conn_); +} string AmbientViewer::GetUUID(string rid) const { char uuid[37]; diff --git a/watch-holder/api/watch_holder.cc b/watch-holder/api/watch_holder.cc index a4b841c0..5585262b 100644 --- a/watch-holder/api/watch_holder.cc +++ b/watch-holder/api/watch_holder.cc @@ -109,6 +109,9 @@ C_EXPORT int watch_holder_get_current(watch_holder_h handle, watch_h *watch) { if (handle == nullptr) return WATCH_HOLDER_ERROR_INVALID_PARAMETER; + if (handle->GetCurrent() == nullptr) + return WATCH_HOLDER_ERROR_INVALID_OPERATION; + *watch = reinterpret_cast(handle->GetCurrent().get()); return WATCH_HOLDER_ERROR_NONE; diff --git a/watch-holder/api/watch_mirror.cc b/watch-holder/api/watch_mirror.cc index 1daf29fd..b3996c63 100644 --- a/watch-holder/api/watch_mirror.cc +++ b/watch-holder/api/watch_mirror.cc @@ -102,6 +102,9 @@ C_EXPORT int watch_mirror_get_current(watch_mirror_h handle, sharable_watch_h *w if (handle == nullptr) return WATCH_HOLDER_ERROR_INVALID_PARAMETER; + if (handle->GetCurrent() == nullptr) + return WATCH_HOLDER_ERROR_INVALID_OPERATION; + *watch = reinterpret_cast(handle->GetCurrent().get()); return WATCH_HOLDER_ERROR_NONE; diff --git a/watch-holder/src/ambient_listener.cc b/watch-holder/src/ambient_listener.cc index c69dd4d9..07dedb38 100644 --- a/watch-holder/src/ambient_listener.cc +++ b/watch-holder/src/ambient_listener.cc @@ -49,8 +49,15 @@ namespace watch_holder { bundle* envelope, void* user_data) { LOGI("Receive aod ambient event"); AmbientListener* listener = (AmbientListener*)user_data; - tizen_base::Bundle b = tizen_base::Bundle(envelope, false, false); + + if (!envelope) { + LOGE("Bad bundle data from application"); + return -1; + } + + tizen_base::Bundle b = tizen_base::Bundle(envelope, true, true); std::string event_type= b.GetString("__APP_AMBIENT_EVENT__"); + LOGI("event type (%s)", event_type.c_str()); int type = stoi(event_type); std::string sender = b.GetString("__APP_AMBIENT_SENDER__"); b.Delete("__APP_AMBIENT_EVENT__"); @@ -88,5 +95,8 @@ namespace watch_holder { AmbientListener::~AmbientListener() { if (ambient_changed_signal_conn_) aul_app_com_leave(ambient_changed_signal_conn_); + + if (ambient_event_signal_conn_) + aul_app_com_leave(ambient_event_signal_conn_); } } diff --git a/watch-holder/src/watch_holder.cc b/watch-holder/src/watch_holder.cc index 391a1db9..63e65128 100644 --- a/watch-holder/src/watch_holder.cc +++ b/watch-holder/src/watch_holder.cc @@ -97,6 +97,10 @@ const std::list>& WatchHolder::GetStack() const { } std::shared_ptr WatchHolder::GetCurrent() const { + if (stack_.empty()) { + LOGW("Empty stack!"); + return nullptr; + } return stack_.back(); } diff --git a/watch-holder/src/watch_mirror.cc b/watch-holder/src/watch_mirror.cc index 3ef82188..0c4df0b4 100644 --- a/watch-holder/src/watch_mirror.cc +++ b/watch-holder/src/watch_mirror.cc @@ -80,6 +80,10 @@ int WatchMirror::Listen() { } std::shared_ptr WatchMirror::GetCurrent() const { + if (stack_.empty()) { + LOGW("Empty stack!"); + return nullptr; + } return stack_.back(); }