Преглед изворни кода

Handle last element outside of the loop.

There is no point in checking on each loop iteration whether
it is the last element.
Stephen Kelly пре 10 година
родитељ
комит
0b61b86df8
1 измењених фајлова са 11 додато и 3 уклоњено
  1. 11 3
      Source/cmLocalUnixMakefileGenerator3.cxx

+ 11 - 3
Source/cmLocalUnixMakefileGenerator3.cxx

@@ -2298,10 +2298,9 @@ cmLocalUnixMakefileGenerator3::ConvertToQuotedOutputPath(const char* p,
     // Now add the rest of the components separated by the proper slash
     // direction for this platform.
     bool first = true;
-    for(unsigned int i=1; i < components.size(); ++i)
+    for(unsigned int i=1; i < components.size() - 1; ++i)
       {
-      // Only the last component can be empty to avoid double slashes.
-      if(!components[i].empty() || (i == (components.size()-1)))
+      if(!components[i].empty())
         {
         if(!first)
           {
@@ -2311,6 +2310,15 @@ cmLocalUnixMakefileGenerator3::ConvertToQuotedOutputPath(const char* p,
         first = false;
         }
       }
+    if (components.size() > 1)
+      {
+      // Only the last component can be empty to avoid double slashes.
+      if(!first)
+        {
+        result += slash;
+        }
+      result += components.back();
+      }
     }
 
   // Close the quoted result.