From 37cfd2e49752fd2a047a16b7953e3222c6cdc5f3 Mon Sep 17 00:00:00 2001 From: "Eunki, Hong" Date: Thu, 23 Mar 2023 12:16:42 +0900 Subject: [PATCH] Fix svace issue (strerror -> strerror_r) SVACE say to us that Don't use strerror. Change-Id: Ib0a884b23e4278e86189a7ca727b150b24d26a06 Signed-off-by: Eunki, Hong --- .../public-api/loader/navigation-mesh-factory.cpp | 59 ++++++++++++---------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/dali-scene3d/public-api/loader/navigation-mesh-factory.cpp b/dali-scene3d/public-api/loader/navigation-mesh-factory.cpp index 4ae02e6..7e09332 100644 --- a/dali-scene3d/public-api/loader/navigation-mesh-factory.cpp +++ b/dali-scene3d/public-api/loader/navigation-mesh-factory.cpp @@ -31,41 +31,48 @@ std::unique_ptr NavigationMeshFactory::CreateFromFile std::vector buffer; Dali::FileStream fileStream(filename, Dali::FileStream::READ | Dali::FileStream::BINARY); - auto fin = fileStream.GetFile(); + auto fin = fileStream.GetFile(); - if(!fin) + if(DALI_UNLIKELY(!fin)) { - DALI_LOG_ERROR("NavigationMesh: Can't open %s for reading: %s", filename.c_str(), strerror(errno)); + const int bufferLength = 128; + char buffer[bufferLength]; + + // Return type of stderror_r is different between system type. We should not use return value. + [[maybe_unused]] auto ret = strerror_r(errno, buffer, bufferLength - 1); + + DALI_LOG_ERROR("NavigationMesh: Can't open %s for reading: %s", filename.c_str(), buffer); return nullptr; } - else + + if(DALI_UNLIKELY(fseek(fin, 0, SEEK_END))) { - if(fseek(fin, 0, SEEK_END)) - { - return {}; - } + DALI_LOG_ERROR("NavigationMesh: Error reading file: %s\n", filename.c_str()); + return nullptr; + } - auto size = ftell(fin); - if(size < 0) - { - return {}; - } + auto size = ftell(fin); + if(DALI_UNLIKELY(size < 0)) + { + DALI_LOG_ERROR("NavigationMesh: Error reading file: %s\n", filename.c_str()); + return nullptr; + } - auto fileSize = size_t(size); - if(fseek(fin, 0, SEEK_SET)) - { - return {}; - } + auto fileSize = size_t(size); + if(DALI_UNLIKELY(fseek(fin, 0, SEEK_SET))) + { + DALI_LOG_ERROR("NavigationMesh: Error reading file: %s\n", filename.c_str()); + return nullptr; + } - buffer.resize(size); - auto count = fread(buffer.data(), 1, fileSize, fin); - if(count != fileSize) - { - DALI_LOG_ERROR("NavigationMesh: Error reading file: %s\n", filename.c_str()); - return nullptr; - } - return CreateFromBuffer(buffer); + buffer.resize(size); + auto count = fread(buffer.data(), 1, fileSize, fin); + if(DALI_UNLIKELY(count != fileSize)) + { + DALI_LOG_ERROR("NavigationMesh: Error reading file: %s\n", filename.c_str()); + return nullptr; } + return CreateFromBuffer(buffer); } std::unique_ptr NavigationMeshFactory::CreateFromBuffer(const std::vector& buffer) -- 2.7.4