]> granicus.if.org Git - taglib/commitdiff
Avoid using &d->data[0] when d->data is empty.
authorTsuda Kageyu <tsuda.kageyu@gmail.com>
Wed, 5 Feb 2014 01:35:07 +0000 (10:35 +0900)
committerTsuda Kageyu <tsuda.kageyu@gmail.com>
Wed, 5 Feb 2014 01:35:07 +0000 (10:35 +0900)
taglib/toolkit/tstring.cpp

index 30f70d2c7e31d3472ccd1f2269e869f64fa95fce..774642a87ec725c72e6555b77f58eb4081bff35a 100644 (file)
@@ -804,11 +804,13 @@ void String::copyFromUTF16(const wchar_t *s, size_t length, Type t)
     swap = (t != WCharByteOrder);
 
   d->data.resize(length);
-  memcpy(&d->data[0], s, length * sizeof(wchar_t));
+  if(length > 0) {
+    memcpy(&d->data[0], s, length * sizeof(wchar_t));
 
-  if(swap) {
-    for(size_t i = 0; i < length; ++i)
-      d->data[i] = Utils::byteSwap(static_cast<ushort>(s[i]));
+    if(swap) {
+      for(size_t i = 0; i < length; ++i)
+        d->data[i] = Utils::byteSwap(static_cast<ushort>(s[i]));
+    }
   }
 }