From 0ec63ea256358c948066bb58f3dbb160ca6e6a79 Mon Sep 17 00:00:00 2001 From: hyunho Date: Fri, 10 Apr 2020 19:15:46 +0900 Subject: [PATCH] Fix casting bug Change-Id: Ia650577b20da9cf9f53feef292506d3da9bb92d6 Signed-off-by: hyunho --- watch-holder/api/sharable_watch.cc | 54 +++++++++++++++++++----------- watch-holder/api/watch_mirror.cc | 12 +++---- 2 files changed, 39 insertions(+), 27 deletions(-) diff --git a/watch-holder/api/sharable_watch.cc b/watch-holder/api/sharable_watch.cc index c3a12910..4a28adca 100644 --- a/watch-holder/api/sharable_watch.cc +++ b/watch-holder/api/sharable_watch.cc @@ -26,49 +26,65 @@ using namespace watch_holder; -struct sharable_watch_s : public Watch {}; +struct sharable_watch_s : public ISharableWatch {}; C_EXPORT int sharable_watch_resume(sharable_watch_h watch) { - watch_h w = reinterpret_cast(watch); - return watch_resume(w); + ISharableWatch* w = reinterpret_cast(watch); + w->Resume(); + return 0; } C_EXPORT int sharable_watch_pause(sharable_watch_h watch) { - watch_h w = reinterpret_cast(watch); - return watch_pause(w); + ISharableWatch* w = reinterpret_cast(watch); + w->Pause(); + return 0; } C_EXPORT int sharable_watch_get_appid(sharable_watch_h watch, char **appid) { - watch_h w = reinterpret_cast(watch); - return watch_get_appid(w, appid); + ISharableWatch* w = reinterpret_cast(watch); + char* id = strdup(w->GetAppId().c_str()); + if (id == nullptr) + return WATCH_HOLDER_ERROR_OUT_OF_MEMORY; + + *appid = id; + return 0; } C_EXPORT int sharable_watch_get_pid(sharable_watch_h watch, int *pid) { - watch_h w = reinterpret_cast(watch); - return watch_get_pid(w, pid); + ISharableWatch* w = reinterpret_cast(watch); + *pid = w->GetPid(); + return 0; } C_EXPORT int sharable_watch_get_extra(sharable_watch_h watch, bundle **extra) { - watch_h w = reinterpret_cast(watch); - return watch_get_extra(w, extra); + ISharableWatch* w = reinterpret_cast(watch); + *extra = w->GetExtra().GetHandle(); + return 0; } C_EXPORT int sharable_watch_get_current_image(sharable_watch_h watch, Evas_Object **image) { - watch_h w = reinterpret_cast(watch); - return watch_get_current_image(w, image); + ISharableWatch* w = reinterpret_cast(watch); + *image = w->GetCurrentImage(); + + if (*image == nullptr) + return WATCH_HOLDER_ERROR_INVALID_OPERATION; + return 0; } C_EXPORT int sharable_watch_is_bound(sharable_watch_h watch, bool *bound) { - watch_h w = reinterpret_cast(watch); - return watch_is_bound(w, bound); + ISharableWatch* w = reinterpret_cast(watch); + *bound = w->IsBound(); + return 0; } C_EXPORT int sharable_watch_is_faulted(sharable_watch_h watch, bool *faulted) { - watch_h w = reinterpret_cast(watch); - return watch_is_faulted(w, faulted); + ISharableWatch* w = reinterpret_cast(watch); + *faulted = w->IsFaulted(); + return 0; } C_EXPORT int sharable_watch_block_update(sharable_watch_h watch, bool enable) { - watch_h w = reinterpret_cast(watch); - return watch_block_update(w, enable); + ISharableWatch* w = reinterpret_cast(watch); + w->BlockUpdate(enable); + return 0; } diff --git a/watch-holder/api/watch_mirror.cc b/watch-holder/api/watch_mirror.cc index f9121cbc..b3996c63 100644 --- a/watch-holder/api/watch_mirror.cc +++ b/watch-holder/api/watch_mirror.cc @@ -32,26 +32,22 @@ struct watch_mirror_s : public WatchMirror { : WatchMirror(win), cb_(cb), cb_data_(cb_data) {} void OnAdded(const ISharableWatch& watch) override { ISharableWatch& w = const_cast(watch); - Watch* wa = dynamic_cast(&w); - cb_.watch_mirror_lifecycle_added_cb(reinterpret_cast(wa), cb_data_); + cb_.watch_mirror_lifecycle_added_cb(reinterpret_cast(&w), cb_data_); } void OnUpdated(const ISharableWatch& watch) override { ISharableWatch& w = const_cast(watch); - Watch* wa = dynamic_cast(&w); - cb_.watch_mirror_lifecycle_updated_cb(reinterpret_cast(wa), watch.GetCurrentImage(), cb_data_); + cb_.watch_mirror_lifecycle_updated_cb(reinterpret_cast(&w), watch.GetCurrentImage(), cb_data_); } void OnRemoved(const ISharableWatch& watch) override { ISharableWatch& w = const_cast(watch); - Watch* wa = dynamic_cast(&w); - cb_.watch_mirror_lifecycle_removed_cb(reinterpret_cast(wa), cb_data_); + cb_.watch_mirror_lifecycle_removed_cb(reinterpret_cast(&w), cb_data_); } void OnChanged(const ISharableWatch& watch) override { ISharableWatch& w = const_cast(watch); - Watch* wa = dynamic_cast(&w); - cb_.watch_mirror_lifecycle_changed_cb(reinterpret_cast(wa), cb_data_); + cb_.watch_mirror_lifecycle_changed_cb(reinterpret_cast(&w), cb_data_); } void OnAmbientChanged(bool enter, tizen_base::Bundle& extra) override { -- 2.34.1