[dali_2.3.24] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-scene3d / public-api / loader / utils.cpp
index e4f3596..9120b65 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.
  *
  */
 
-// INTERNAL
-#include "dali-scene3d/public-api/loader/utils.h"
+// CLASS HEADER
+#include <dali-scene3d/public-api/loader/utils.h>
 
-// EXTERNAL
+// EXTERNAL INCLUDES
+#include <dali/public-api/animation/constraints.h>
+#include <dali/public-api/common/vector-wrapper.h>
 #include <stdarg.h>
 #include <cstring>
 #include <fstream>
 #include <iostream>
-#include "dali/public-api/animation/constraints.h"
-#include "dali/public-api/common/vector-wrapper.h"
 
-namespace Dali
-{
-namespace Scene3D
-{
-namespace Loader
+namespace Dali::Scene3D::Loader
 {
 namespace
 {
@@ -71,14 +67,19 @@ std::string FormatString(const char* format, ...)
   va_list vl2;
   va_copy(vl2, vl);
 
-  size_t sizeRequired = vsnprintf(nullptr, 0, format, vl);
+  std::string result;
+  int32_t     length = vsnprintf(nullptr, 0, format, vl);
   va_end(vl);
 
-  ++sizeRequired;
-  std::string result(sizeRequired, '\0');
-  vsnprintf(&result[0], sizeRequired, format, vl2);
+  if(length >= 0)
+  {
+    size_t sizeRequired = static_cast<size_t>(length);
+    ++sizeRequired;
+    std::string formatString(sizeRequired, '\0');
+    vsnprintf(&formatString[0], sizeRequired, format, vl2);
+    result = formatString;
+  }
   va_end(vl2);
-
   return result;
 }
 
@@ -147,6 +148,4 @@ void ToUnixFileSeparators(std::string& path)
   std::replace(path.begin(), path.end(), '\\', '/');
 }
 
-} // namespace Loader
-} // namespace Scene3D
-} // namespace Dali
+} // namespace Dali::Scene3D::Loader