Replace std::string global variables with C-style string. 35/288335/2
authorhuayong.xu <huayong.xu@samsung.com>
Wed, 15 Feb 2023 08:48:39 +0000 (16:48 +0800)
committerhuayong.xu <huayong.xu@samsung.com>
Wed, 15 Feb 2023 08:54:35 +0000 (16:54 +0800)
A std::string global variable would allocate a memory in heap,
then copy the string from .text section to the heap.
This patch may reduce loading time & memory a little.

Change-Id: I124fc778ab00754bc61d1517a18afcb728904483

dali/internal/graphics/gles-impl/gles-graphics-texture.cpp
dali/internal/graphics/gles/egl-implementation.cpp
dali/internal/graphics/tizen/egl-image-extensions-tizen.cpp
dali/internal/system/common/configuration-manager.cpp
dali/internal/text/text-abstraction/plugin/font-client-utils.cpp
dali/internal/window-system/ubuntu-x11/window-base-ecore-x.cpp
dali/internal/window-system/windows/platform-implement-win.cpp
dali/internal/window-system/x11/window-base-x.cpp

index f7a2aef..9b997c6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 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.
@@ -91,8 +91,12 @@ inline std::vector<uint8_t> ConvertRGB32ToRGBA32(const void* pData, uint32_t siz
 /**
  * Format conversion table
  */
-static const std::vector<ColorConversion> COLOR_CONVERSION_TABLE = {
-  {Format::R8G8B8_UNORM, Format::R8G8B8A8_UNORM, ConvertRGB32ToRGBA32, WriteRGB32ToRGBA32}};
+const std::vector<ColorConversion>& GetColorConversionTable()
+{
+  static const std::vector<ColorConversion> COLOR_CONVERSION_TABLE = {
+    {Format::R8G8B8_UNORM, Format::R8G8B8A8_UNORM, ConvertRGB32ToRGBA32, WriteRGB32ToRGBA32}};
+  return COLOR_CONVERSION_TABLE;
+}
 
 /**
  * Constructor
@@ -399,12 +403,12 @@ bool Texture::TryConvertPixelData(const void* pData, Graphics::Format srcFormat,
     return false;
   }
 
-  auto it = std::find_if(COLOR_CONVERSION_TABLE.begin(), COLOR_CONVERSION_TABLE.end(), [&](auto& item) {
+  auto it = std::find_if(GetColorConversionTable().begin(), GetColorConversionTable().end(), [&](auto& item) {
     return item.srcFormat == srcFormat && item.destFormat == destFormat;
   });
 
   // No suitable format, return empty array
-  if(it == COLOR_CONVERSION_TABLE.end())
+  if(it == GetColorConversionTable().end())
   {
     return false;
   }
index 09d8867..e389671 100644 (file)
 
 namespace
 {
-const uint32_t    THRESHOLD_SWAPBUFFER_COUNT              = 5;
-const uint32_t    CHECK_EXTENSION_NUMBER                  = 4;
-const uint32_t    EGL_VERSION_SUPPORT_SURFACELESS_CONTEXT = 15;
-const std::string EGL_KHR_SURFACELESS_CONTEXT             = "EGL_KHR_surfaceless_context";
-const std::string EGL_KHR_CREATE_CONTEXT                  = "EGL_KHR_create_context";
-const std::string EGL_KHR_PARTIAL_UPDATE                  = "EGL_KHR_partial_update";
-const std::string EGL_KHR_SWAP_BUFFERS_WITH_DAMAGE        = "EGL_KHR_swap_buffers_with_damage";
+const uint32_t THRESHOLD_SWAPBUFFER_COUNT              = 5;
+const uint32_t CHECK_EXTENSION_NUMBER                  = 4;
+const uint32_t EGL_VERSION_SUPPORT_SURFACELESS_CONTEXT = 15;
+const char*    EGL_KHR_SURFACELESS_CONTEXT             = "EGL_KHR_surfaceless_context";
+const char*    EGL_KHR_CREATE_CONTEXT                  = "EGL_KHR_create_context";
+const char*    EGL_KHR_PARTIAL_UPDATE                  = "EGL_KHR_partial_update";
+const char*    EGL_KHR_SWAP_BUFFERS_WITH_DAMAGE        = "EGL_KHR_swap_buffers_with_damage";
 
 // Threshold time in miliseconds
 constexpr auto PERFORMANCE_LOG_THRESHOLD_TIME_ENV = "DALI_EGL_PERFORMANCE_LOG_THRESHOLD_TIME";
index cf79bdb..785f933 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 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.
@@ -46,8 +46,8 @@ PFNEGLCREATEIMAGEKHRPROC            eglCreateImageKHRProc            = 0;
 PFNEGLDESTROYIMAGEKHRPROC           eglDestroyImageKHRProc           = 0;
 PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2DOESProc = 0;
 
-const std::string EGL_TIZEN_IMAGE_NATIVE_SURFACE = "EGL_TIZEN_image_native_surface";
-const std::string EGL_EXT_IMAGE_DMA_BUF_IMPORT   = "EGL_EXT_image_dma_buf_import";
+const char* EGL_TIZEN_IMAGE_NATIVE_SURFACE = "EGL_TIZEN_image_native_surface";
+const char* EGL_EXT_IMAGE_DMA_BUF_IMPORT   = "EGL_EXT_image_dma_buf_import";
 
 } // unnamed namespace
 
index 0515b46..ff77416 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 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.
@@ -37,11 +37,11 @@ namespace Adaptor
 {
 namespace
 {
-const std::string SYSTEM_CACHE_FILE                           = "gpu-environment.conf";
-const std::string DALI_ENV_MULTIPLE_WINDOW_SUPPORT            = "DALI_ENV_MULTIPLE_WINDOW_SUPPORT";
-const std::string DALI_BLEND_EQUATION_ADVANCED_SUPPORT        = "DALI_BLEND_EQUATION_ADVANCED_SUPPORT";
-const std::string DALI_MULTISAMPLED_RENDER_TO_TEXTURE_SUPPORT = "DALI_MULTISAMPLED_RENDER_TO_TEXTURE_SUPPORT";
-const std::string DALI_GLSL_VERSION                           = "DALI_GLSL_VERSION";
+const char* SYSTEM_CACHE_FILE                           = "gpu-environment.conf";
+const char* DALI_ENV_MULTIPLE_WINDOW_SUPPORT            = "DALI_ENV_MULTIPLE_WINDOW_SUPPORT";
+const char* DALI_BLEND_EQUATION_ADVANCED_SUPPORT        = "DALI_BLEND_EQUATION_ADVANCED_SUPPORT";
+const char* DALI_MULTISAMPLED_RENDER_TO_TEXTURE_SUPPORT = "DALI_MULTISAMPLED_RENDER_TO_TEXTURE_SUPPORT";
+const char* DALI_GLSL_VERSION                           = "DALI_GLSL_VERSION";
 
 } // unnamed namespace
 
index 445e026..2ca3b1c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 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.
@@ -131,10 +131,10 @@ const FontSlant::Type IntToSlantType(int slant)
   return static_cast<FontSlant::Type>(ValueToIndex(slant, FONT_SLANT_TYPE_TO_INT, NUM_FONT_SLANT_TYPE - 1u));
 }
 
-const std::string DEFAULT_FONT_FAMILY_NAME("Tizen");
-const int         DEFAULT_FONT_WIDTH(100);
-const int         DEFAULT_FONT_WEIGHT(80);
-const int         DEFAULT_FONT_SLANT(0);
+const char* DEFAULT_FONT_FAMILY_NAME("Tizen");
+const int   DEFAULT_FONT_WIDTH(100);
+const int   DEFAULT_FONT_WEIGHT(80);
+const int   DEFAULT_FONT_SLANT(0);
 
 const std::string_view DefaultFontFamily()
 {
index ef2e530..c70bc4b 100644 (file)
@@ -37,7 +37,7 @@ namespace Adaptor
 {
 namespace
 {
-const std::string            DEFAULT_DEVICE_NAME     = "";
+const char*                  DEFAULT_DEVICE_NAME     = "";
 const Device::Class::Type    DEFAULT_DEVICE_CLASS    = Device::Class::NONE;
 const Device::Subclass::Type DEFAULT_DEVICE_SUBCLASS = Device::Subclass::NONE;
 
index 658c64c..2716f90 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.
@@ -48,7 +48,7 @@ LRESULT CALLBACK WinProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
 namespace
 {
-const std::string DALI_WINDOW_CLASS_NAME = "DaliWindow";
+const char* DALI_WINDOW_CLASS_NAME = "DaliWindow";
 
 uint32_t sNumWindows = 0;
 
index 3f803f7..be48605 100644 (file)
@@ -39,7 +39,7 @@ namespace Adaptor
 {
 namespace
 {
-const std::string            DEFAULT_DEVICE_NAME     = "";
+const char*                  DEFAULT_DEVICE_NAME     = "";
 const Device::Class::Type    DEFAULT_DEVICE_CLASS    = Device::Class::NONE;
 const Device::Subclass::Type DEFAULT_DEVICE_SUBCLASS = Device::Subclass::NONE;