Просмотр исходного кода

reduced OpenGEX string bloat

The OpenGEX importer defined a few global std::string constants, only to convert them back to C strings on use. This commit defines them as C strings from the beginning.

strncmp() was used to compare these strings to other strings, but the length limit was set to string length, which made it equivalent to strcmp(), just slower. Fixed that as well.
Krishty 4 лет назад
Родитель
Сommit
f3c18556d1
1 измененных файлов с 8 добавлено и 8 удалено
  1. 8 8
      code/AssetLib/OpenGEX/OpenGEXImporter.cpp

+ 8 - 8
code/AssetLib/OpenGEX/OpenGEXImporter.cpp

@@ -735,22 +735,22 @@ enum MeshAttribute {
     TexCoord
     TexCoord
 };
 };
 
 
-static const std::string PosToken = "position";
-static const std::string ColToken = "color";
-static const std::string NormalToken = "normal";
-static const std::string TexCoordToken = "texcoord";
+constexpr auto PosToken = "position";
+constexpr auto ColToken = "color";
+constexpr auto NormalToken = "normal";
+constexpr auto TexCoordToken = "texcoord";
 
 
 //------------------------------------------------------------------------------------------------
 //------------------------------------------------------------------------------------------------
 static MeshAttribute getAttributeByName(const char *attribName) {
 static MeshAttribute getAttributeByName(const char *attribName) {
     ai_assert(nullptr != attribName);
     ai_assert(nullptr != attribName);
 
 
-    if (0 == strncmp(PosToken.c_str(), attribName, PosToken.size())) {
+    if (0 == strcmp(PosToken, attribName)) {
         return Position;
         return Position;
-    } else if (0 == strncmp(ColToken.c_str(), attribName, ColToken.size())) {
+    } else if (0 == strcmp(ColToken, attribName)) {
         return Color;
         return Color;
-    } else if (0 == strncmp(NormalToken.c_str(), attribName, NormalToken.size())) {
+    } else if (0 == strcmp(NormalToken, attribName)) {
         return Normal;
         return Normal;
-    } else if (0 == strncmp(TexCoordToken.c_str(), attribName, TexCoordToken.size())) {
+    } else if (0 == strcmp(TexCoordToken, attribName)) {
         return TexCoord;
         return TexCoord;
     }
     }