Remove build warning at RISCV 27/301427/3
authorEunki Hong <eunkiki.hong@samsung.com>
Wed, 15 Nov 2023 16:33:23 +0000 (01:33 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Thu, 16 Nov 2023 01:47:30 +0000 (10:47 +0900)
Resolve 3 kinds of build warning messages

1. -Wpessimizing-move
[   48s] /home/abuild/rpmbuild/BUILD/dali2-adaptor-2.2.52/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp:543:50: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
[   48s]   543 |       if(tvgDuplicatedObject->composite(std::move(std::unique_ptr<tvg::Paint>(tvgDuplicatedCompositeObject)), static_cast<tvg::CompositeMethod>(drawableImpl.GetCompositionType())) != tvg::Result::Success)
[   48s]       |                                         ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[   48s] /home/abuild/rpmbuild/BUILD/dali2-adaptor-2.2.52/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp:543:50: note: remove 'std::move' call

2. -Wmaybe-uninitialized
[   48s] /home/abuild/rpmbuild/BUILD/dali2-adaptor-2.2.52/dali/internal/adaptor/tizen-wayland/framework-tizen.cpp:1353:3: warning: 'ret' may be used uninitialized [-Wmaybe-uninitialized]
[   48s]  1353 |   if(ret != APP_ERROR_NONE)
[   48s]       |   ^~
[   48s] /home/abuild/rpmbuild/BUILD/dali2-adaptor-2.2.52/dali/internal/adaptor/tizen-wayland/framework-tizen.cpp:752:9: note: 'ret' was declared here
[   48s]   752 |     int ret;
[   48s]       |         ^~~

3. -Wsign-compare
[  116s] /home/abuild/rpmbuild/BUILD/dali2-adaptor-2.2.52/dali/internal/drag-and-drop/tizen-wayland/drag-and-drop-impl-ecore-wl2.cpp:453:18: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Wsign-compare]
[  116s]   453 |       if(ev->win == mDropWindowTargets[i].windowId)
[  116s]       |          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

TODO : Can we remove deprecated widget application codes?

Change-Id: I776de1726c92c2ae4be5519db38a92a0543e4cc0
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
automated-tests/src/dali-adaptor-internal/utc-Dali-FontClient.cpp
dali/internal/adaptor/tizen-wayland/framework-tizen.cpp
dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp
dali/internal/drag-and-drop/tizen-wayland/drag-and-drop-impl-ecore-wl2.cpp

index e8d8fdc..547eba9 100644 (file)
@@ -873,10 +873,16 @@ TextAbstraction::FontId SetupBitmapFont()
     GlyphDesc(const std::string& url, const std::string& utf8)
     {
       this->url = url;
+
+      DALI_ASSERT_ALWAYS(utf8.size() <= 6u);
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstringop-overflow"
       std::copy(utf8.begin(), utf8.end(), this->utf8);
+#pragma GCC diagnostic pop
     }
     std::string url;
-    uint8_t     utf8[4];
+    uint8_t     utf8[6];
   };
   std::vector<GlyphDesc> glyphs;
 
index 9f9e1ff..50a1a53 100644 (file)
@@ -774,6 +774,11 @@ struct FrameworkTizen::Impl
         break;
       }
 #endif
+      default:
+      {
+        DALI_LOG_ERROR("Invalid app type : %d\n", static_cast<int>(mApplicationType));
+        ret = APP_ERROR_NOT_SUPPORTED;
+      }
     }
     return ret;
   }
@@ -804,6 +809,10 @@ struct FrameworkTizen::Impl
         break;
       }
 #endif
+      default:
+      {
+        DALI_LOG_ERROR("Invalid app type : %d\n", static_cast<int>(mApplicationType));
+      }
     }
   }
 
@@ -1084,7 +1093,7 @@ struct FrameworkTizen::Impl
     }
 
     mUiAppContext->Run(*mFramework->mArgc, *mFramework->mArgv);
-    return TIZEN_ERROR_NONE;
+    return APP_ERROR_NONE;
   }
 
   void AppNormalExit()
@@ -1122,7 +1131,7 @@ struct FrameworkTizen::Impl
     if(!IsWidgetFeatureEnabled())
     {
       DALI_LOG_ERROR("widget feature is not supported");
-      return 0;
+      return APP_ERROR_NOT_SUPPORTED;
     }
 
     AppCore::AppAddEventHandler(&handlers[AppCore::LOW_BATTERY], AppCore::LOW_BATTERY, AppBatteryLow, mFramework);
@@ -1215,7 +1224,7 @@ struct FrameworkTizen::Impl
 
   int AppWatchMain()
   {
-    int ret = true;
+    int ret = APP_ERROR_NOT_SUPPORTED;
 
 #ifdef APPCORE_WATCH_AVAILABLE
     mWatchCallback.create          = WatchAppCreate;
@@ -1233,6 +1242,8 @@ struct FrameworkTizen::Impl
     AppCore::AppAddEventHandler(&handlers[AppCore::REGION_FORMAT_CHANGED], AppCore::REGION_FORMAT_CHANGED, AppRegionChanged, mFramework);
 
     ret = watch_app_main(*mFramework->mArgc, *mFramework->mArgv, &mWatchCallback, mFramework);
+#else
+    DALI_LOG_ERROR("watch feature is not supported");
 #endif
     return ret;
   }
index 3cc3efc..a2f2572 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -540,7 +540,7 @@ void CanvasRendererTizen::PushDrawableToGroup(Dali::CanvasRenderer::Drawable& dr
         }
       }
 
-      if(tvgDuplicatedObject->composite(std::move(std::unique_ptr<tvg::Paint>(tvgDuplicatedCompositeObject)), static_cast<tvg::CompositeMethod>(drawableImpl.GetCompositionType())) != tvg::Result::Success)
+      if(tvgDuplicatedObject->composite(std::unique_ptr<tvg::Paint>(tvgDuplicatedCompositeObject), static_cast<tvg::CompositeMethod>(drawableImpl.GetCompositionType())) != tvg::Result::Success)
       {
         DALI_LOG_ERROR("Tvg composite fail [%p]\n", this);
         return;
@@ -548,7 +548,7 @@ void CanvasRendererTizen::PushDrawableToGroup(Dali::CanvasRenderer::Drawable& dr
     }
   }
 
-  if(parent->push(std::move(std::unique_ptr<tvg::Paint>(tvgDuplicatedObject))) != tvg::Result::Success)
+  if(parent->push(std::unique_ptr<tvg::Paint>(tvgDuplicatedObject)) != tvg::Result::Success)
   {
     DALI_LOG_ERROR("Tvg push fail [%p]\n", this);
     return;
index 0d48113..1771ccb 100644 (file)
@@ -38,6 +38,14 @@ namespace Internal
 {
 namespace Adaptor
 {
+// Note : The real Ecore_Window type is uintptr_t.
+// But a lots of Ecore_Wl2_Event_Dnd_XXX type use window as 'unsigned int' type.
+// And ecore_wl2_window_id_get() API return it as 'int' type.
+// So dali just keep window id as int type now.
+//
+// To avoid compile warning, we should convert the type by it.
+using EcoreWl2EventDragAndDropWindowIdType = unsigned int;
+
 namespace
 {
 static constexpr int32_t DEFAULT_POSITION            = -1;
@@ -363,37 +371,36 @@ void DragAndDropEcoreWl::ResetDropTargets()
   }
 }
 
-static Eina_Bool WriteDelayedDataTofd(void *data, Ecore_Fd_Handler *fd_handler)
+static Eina_Bool WriteDelayedDataTofd(void* data, Ecore_Fd_Handler* fd_handler)
 {
-   int fd;
-   size_t len;
-   DelayedWritingData *slice = (DelayedWritingData*)data;
-
-   fd = ecore_main_fd_handler_fd_get(fd_handler);
-   if(fd < 0)
-   {
-     ecore_main_fd_handler_del(fd_handler);
-     free(slice->slice.mem);
-     free(slice);
-     return EINA_FALSE;
-   }
-
-   len = write(fd, (char*)slice->slice.mem + slice->writtenBytes,
-               slice->slice.len - slice->writtenBytes);
-
-   slice->writtenBytes += len;
-   if(slice->writtenBytes != slice->slice.len)
-   {
-     return EINA_TRUE;
-   }
-   else
-   {
-     ecore_main_fd_handler_del(fd_handler);
-     free(slice->slice.mem);
-     free(slice);
-     if (fd > -1) close(fd);
-     return EINA_FALSE;
-   }
+  int                 fd;
+  size_t              len;
+  DelayedWritingData* slice = (DelayedWritingData*)data;
+
+  fd = ecore_main_fd_handler_fd_get(fd_handler);
+  if(fd < 0)
+  {
+    ecore_main_fd_handler_del(fd_handler);
+    free(slice->slice.mem);
+    free(slice);
+    return EINA_FALSE;
+  }
+
+  len = write(fd, (char*)slice->slice.mem + slice->writtenBytes, slice->slice.len - slice->writtenBytes);
+
+  slice->writtenBytes += len;
+  if(slice->writtenBytes != slice->slice.len)
+  {
+    return EINA_TRUE;
+  }
+  else
+  {
+    ecore_main_fd_handler_del(fd_handler);
+    free(slice->slice.mem);
+    free(slice);
+    if(fd > -1) close(fd);
+    return EINA_FALSE;
+  }
 }
 
 void DragAndDropEcoreWl::SendData(void* event)
@@ -413,9 +420,9 @@ void DragAndDropEcoreWl::SendData(void* event)
     bufferSize += 1;
   }
 
-  DelayedWritingData *data = (DelayedWritingData*)calloc(1, sizeof(DelayedWritingData));
-  data->slice.mem = new char[bufferSize];
-  data->slice.len = bufferSize;
+  DelayedWritingDatadata = (DelayedWritingData*)calloc(1, sizeof(DelayedWritingData));
+  data->slice.mem          = new char[bufferSize];
+  data->slice.len          = bufferSize;
   memcpy(data->slice.mem, mData.c_str(), dataLength);
   ((char*)data->slice.mem)[dataLength] = '\0';
 
@@ -450,7 +457,7 @@ void DragAndDropEcoreWl::ReceiveData(void* event)
   {
     for(std::size_t i = 0; i < mDropWindowTargets.size(); i++)
     {
-      if(ev->win == mDropWindowTargets[i].windowId)
+      if(ev->win == static_cast<EcoreWl2EventDragAndDropWindowIdType>(mDropWindowTargets[i].windowId))
       {
         Dali::DragAndDrop::DragEvent dragEvent(Dali::DragAndDrop::DragType::DROP, mWindowPosition, ev->mimetype, ev->data);
         mDropWindowTargets[i].callback(dragEvent);
@@ -508,7 +515,7 @@ bool DragAndDropEcoreWl::CalculateDragEvent(void* event)
 
   for(std::size_t i = 0; i < mDropTargets.size(); i++)
   {
-    if(ev->win != mDropTargets[i].parentWindowId)
+    if(ev->win != static_cast<EcoreWl2EventDragAndDropWindowIdType>(mDropTargets[i].parentWindowId))
     {
       continue;
     }
@@ -554,7 +561,7 @@ bool DragAndDropEcoreWl::CalculateDragEvent(void* event)
 
   for(std::size_t i = 0; i < mDropWindowTargets.size(); i++)
   {
-    if(ev->win != mDropWindowTargets[i].windowId)
+    if(ev->win != static_cast<EcoreWl2EventDragAndDropWindowIdType>(mDropWindowTargets[i].windowId))
     {
       continue;
     }
@@ -609,7 +616,7 @@ bool DragAndDropEcoreWl::CalculateViewRegion(void* event)
 
   for(std::size_t i = 0; i < mDropTargets.size(); i++)
   {
-    if(ev->win != mDropTargets[i].parentWindowId)
+    if(ev->win != static_cast<EcoreWl2EventDragAndDropWindowIdType>(mDropTargets[i].parentWindowId))
     {
       continue;
     }
@@ -642,7 +649,7 @@ bool DragAndDropEcoreWl::CalculateViewRegion(void* event)
 
   for(std::size_t i = 0; i < mDropWindowTargets.size(); i++)
   {
-    if(ev->win != mDropWindowTargets[i].windowId)
+    if(ev->win != static_cast<EcoreWl2EventDragAndDropWindowIdType>(mDropWindowTargets[i].windowId))
     {
       continue;
     }