Fix casting bug 36/230536/1
authorhyunho <hhstark.kang@samsung.com>
Fri, 10 Apr 2020 10:15:46 +0000 (19:15 +0900)
committerhyunho <hhstark.kang@samsung.com>
Fri, 10 Apr 2020 10:16:05 +0000 (19:16 +0900)
Change-Id: Ia650577b20da9cf9f53feef292506d3da9bb92d6
Signed-off-by: hyunho <hhstark.kang@samsung.com>
watch-holder/api/sharable_watch.cc
watch-holder/api/watch_mirror.cc

index c3a1291..4a28adc 100644 (file)
 
 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_h>(watch);
-  return watch_resume(w);
+  ISharableWatch* w = reinterpret_cast<ISharableWatch*>(watch);
+  w->Resume();
+  return 0;
 }
 
 C_EXPORT int sharable_watch_pause(sharable_watch_h watch) {
-  watch_h w = reinterpret_cast<watch_h>(watch);
-  return watch_pause(w);
+  ISharableWatch* w = reinterpret_cast<ISharableWatch*>(watch);
+  w->Pause();
+  return 0;
 }
 
 C_EXPORT int sharable_watch_get_appid(sharable_watch_h watch, char **appid) {
-  watch_h w = reinterpret_cast<watch_h>(watch);
-  return watch_get_appid(w, appid);
+  ISharableWatch* w = reinterpret_cast<ISharableWatch*>(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_h>(watch);
-  return watch_get_pid(w, pid);
+  ISharableWatch* w = reinterpret_cast<ISharableWatch*>(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_h>(watch);
-  return watch_get_extra(w, extra);
+  ISharableWatch* w = reinterpret_cast<ISharableWatch*>(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_h>(watch);
-  return watch_get_current_image(w, image);
+  ISharableWatch* w = reinterpret_cast<ISharableWatch*>(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_h>(watch);
-  return watch_is_bound(w, bound);
+  ISharableWatch* w = reinterpret_cast<ISharableWatch*>(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_h>(watch);
-  return watch_is_faulted(w, faulted);
+  ISharableWatch* w = reinterpret_cast<ISharableWatch*>(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_h>(watch);
-  return watch_block_update(w, enable);
+  ISharableWatch* w = reinterpret_cast<ISharableWatch*>(watch);
+  w->BlockUpdate(enable);
+  return 0;
 }
index f9121cb..b3996c6 100644 (file)
@@ -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<ISharableWatch&>(watch);
-    Watch* wa = dynamic_cast<Watch*>(&w);
-    cb_.watch_mirror_lifecycle_added_cb(reinterpret_cast<sharable_watch_h>(wa), cb_data_);
+    cb_.watch_mirror_lifecycle_added_cb(reinterpret_cast<sharable_watch_h>(&w), cb_data_);
   }
 
   void OnUpdated(const ISharableWatch& watch) override {
     ISharableWatch& w = const_cast<ISharableWatch&>(watch);
-    Watch* wa = dynamic_cast<Watch*>(&w);
-    cb_.watch_mirror_lifecycle_updated_cb(reinterpret_cast<sharable_watch_h>(wa), watch.GetCurrentImage(), cb_data_);
+    cb_.watch_mirror_lifecycle_updated_cb(reinterpret_cast<sharable_watch_h>(&w), watch.GetCurrentImage(), cb_data_);
   }
 
   void OnRemoved(const ISharableWatch& watch) override {
     ISharableWatch& w = const_cast<ISharableWatch&>(watch);
-    Watch* wa = dynamic_cast<Watch*>(&w);
-    cb_.watch_mirror_lifecycle_removed_cb(reinterpret_cast<sharable_watch_h>(wa), cb_data_);
+    cb_.watch_mirror_lifecycle_removed_cb(reinterpret_cast<sharable_watch_h>(&w), cb_data_);
   }
 
   void OnChanged(const ISharableWatch& watch) override {
     ISharableWatch& w = const_cast<ISharableWatch&>(watch);
-    Watch* wa = dynamic_cast<Watch*>(&w);
-    cb_.watch_mirror_lifecycle_changed_cb(reinterpret_cast<sharable_watch_h>(wa), cb_data_);
+    cb_.watch_mirror_lifecycle_changed_cb(reinterpret_cast<sharable_watch_h>(&w), cb_data_);
   }
 
   void OnAmbientChanged(bool enter, tizen_base::Bundle& extra) override {