Bläddra i källkod

Fix GCC 4.8 undefined behavior warnings.

Lasse Öörni 12 år sedan
förälder
incheckning
e408d1b614
1 ändrade filer med 7 tillägg och 4 borttagningar
  1. 7 4
      Source/Engine/Container/Vector.h

+ 7 - 4
Source/Engine/Container/Vector.h

@@ -439,15 +439,18 @@ private:
     /// Copy elements from one buffer to another.
     /// Copy elements from one buffer to another.
     static void CopyElements(T* dest, const T* src, unsigned count)
     static void CopyElements(T* dest, const T* src, unsigned count)
     {
     {
-        for (unsigned i = 0; i < count; ++i)
-            dest[i] = src[i];
+        while (count--)
+            *dest++ = *src++;
     }
     }
     
     
     // Call the elements' destructors.
     // Call the elements' destructors.
     static void DestructElements(T* dest, unsigned count)
     static void DestructElements(T* dest, unsigned count)
     {
     {
-        for (unsigned i = 0; i < count; ++i)
-            (dest + i)->~T();
+        while (count--)
+        {
+            dest->~T();
+            ++dest;
+        }
     }
     }
 };
 };