[Libreoffice-commits] libmspub.git: 2 commits - src/lib

David Tardon dtardon at redhat.com
Sat Jul 29 10:55:34 UTC 2017


 src/lib/MSPUBCollector.cpp |    2 +-
 src/lib/MSPUBMetaData.cpp  |    4 ++--
 src/lib/PolygonUtils.cpp   |   12 ++++++------
 src/lib/libmspub_utils.cpp |   14 +++++++-------
 4 files changed, 16 insertions(+), 16 deletions(-)

New commits:
commit 77655b7e8dfd05669c3bc1c691a882fa45251cf5
Author: David Tardon <dtardon at redhat.com>
Date:   Sat Jul 29 12:54:50 2017 +0200

    use vector::data()
    
    Change-Id: I8ff2210e36df47c3fcc34a2357425668d6bbfb03

diff --git a/src/lib/MSPUBCollector.cpp b/src/lib/MSPUBCollector.cpp
index b071cb6..981d345 100644
--- a/src/lib/MSPUBCollector.cpp
+++ b/src/lib/MSPUBCollector.cpp
@@ -1174,7 +1174,7 @@ const char *MSPUBCollector::getCalculatedEncoding() const
     goto csd_fail;
   }
   // don't worry, the below call doesn't require a null-terminated string.
-  ucsdet_setText(ucd, (const char *)(&m_allText[0]), m_allText.size(), &status);
+  ucsdet_setText(ucd, (const char *)m_allText.data(), m_allText.size(), &status);
   if (U_FAILURE(status))
   {
     goto csd_fail;
diff --git a/src/lib/PolygonUtils.cpp b/src/lib/PolygonUtils.cpp
index 5a9c3d1..7020b69 100644
--- a/src/lib/PolygonUtils.cpp
+++ b/src/lib/PolygonUtils.cpp
@@ -6381,19 +6381,19 @@ bool isShapeTypeRectangle(ShapeType type)
 std::shared_ptr<const CustomShape> getFromDynamicCustomShape(const DynamicCustomShape &dcs)
 {
   return std::shared_ptr<const CustomShape>(new CustomShape(
-                                              dcs.m_vertices.empty() ? NULL : &dcs.m_vertices[0],
+                                              dcs.m_vertices.empty() ? NULL : dcs.m_vertices.data(),
                                               dcs.m_vertices.size(),
-                                              dcs.m_elements.empty() ? NULL : &dcs.m_elements[0],
+                                              dcs.m_elements.empty() ? NULL : dcs.m_elements.data(),
                                               dcs.m_elements.size(),
-                                              dcs.m_calculations.empty() ? NULL : &dcs.m_calculations[0],
+                                              dcs.m_calculations.empty() ? NULL : dcs.m_calculations.data(),
                                               dcs.m_calculations.size(),
                                               dcs.m_defaultAdjustValues.empty() ? NULL :
-                                              &dcs.m_defaultAdjustValues[0],
+                                              dcs.m_defaultAdjustValues.data(),
                                               dcs.m_defaultAdjustValues.size(),
-                                              dcs.m_textRectangles.empty() ? NULL : &dcs.m_textRectangles[0],
+                                              dcs.m_textRectangles.empty() ? NULL : dcs.m_textRectangles.data(),
                                               dcs.m_textRectangles.size(),
                                               dcs.m_coordWidth, dcs.m_coordHeight,
-                                              dcs.m_gluePoints.empty() ? NULL : &dcs.m_gluePoints[0],
+                                              dcs.m_gluePoints.empty() ? NULL : dcs.m_gluePoints.data(),
                                               dcs.m_gluePoints.size(),
                                               dcs.m_adjustShiftMask
                                             ));
diff --git a/src/lib/libmspub_utils.cpp b/src/lib/libmspub_utils.cpp
index 05627a9..1540e21 100644
--- a/src/lib/libmspub_utils.cpp
+++ b/src/lib/libmspub_utils.cpp
@@ -333,7 +333,7 @@ void readNBytes(librevenge::RVNGInputStream *input, unsigned long length, std::v
     return;
   }
   out = std::vector<unsigned char>(numBytesRead);
-  memcpy(&out[0], tmpBuffer, numBytesRead);
+  memcpy(out.data(), tmpBuffer, numBytesRead);
   return;
 }
 
@@ -387,7 +387,7 @@ void appendCharacters(librevenge::RVNGString &text, const std::vector<unsigned c
   {
     // ICU documentation claims that character-by-character processing is faster "for small amounts of data" and "'normal' charsets"
     // (in any case, it is more convenient :) )
-    const char *src = (const char *)&characters[0];
+    const char *src = (const char *)characters.data();
     const char *srcLimit = (const char *)src + characters.size();
     while (src < srcLimit)
     {
commit 3199b7fa60d678651f2359288e7320706262731e
Author: David Tardon <dtardon at redhat.com>
Date:   Sat Jul 29 12:46:16 2017 +0200

    do not append UTF-8 string by code units
    
    Change-Id: I7b8f01fb875336d7d736cf24553fbb82e44fa5ec

diff --git a/src/lib/MSPUBMetaData.cpp b/src/lib/MSPUBMetaData.cpp
index c298bd1..f9ffb8f 100644
--- a/src/lib/MSPUBMetaData.cpp
+++ b/src/lib/MSPUBMetaData.cpp
@@ -252,8 +252,8 @@ librevenge::RVNGString libmspub::MSPUBMetaData::readCodePageString(librevenge::R
   {
     // http://msdn.microsoft.com/en-us/library/windows/desktop/dd374130%28v=vs.85%29.aspx
     // says this is UTF-8.
-    for (std::vector<unsigned char>::const_iterator i = characters.begin(); i != characters.end(); ++i)
-      string.append((const char)*i);
+    characters.push_back(0);
+    string.append(reinterpret_cast<const char *>(characters.data()));
   }
   else
   {
diff --git a/src/lib/libmspub_utils.cpp b/src/lib/libmspub_utils.cpp
index 00a6f30..05627a9 100644
--- a/src/lib/libmspub_utils.cpp
+++ b/src/lib/libmspub_utils.cpp
@@ -237,17 +237,17 @@ static void _appendUCS4(librevenge::RVNGString &text, unsigned ucs4Character)
     len = 6;
   }
 
-  unsigned char outbuf[6] = { 0, 0, 0, 0, 0, 0 };
+  char outbuf[7] = { 0 };
   int i;
   for (i = len - 1; i > 0; --i)
   {
-    outbuf[i] = (ucs4Character & 0x3f) | 0x80;
+    outbuf[i] = char((ucs4Character & 0x3f) | 0x80);
     ucs4Character >>= 6;
   }
-  outbuf[0] = (ucs4Character & 0xff) | first;
+  outbuf[0] = char((ucs4Character & 0xff) | first);
+  outbuf[len] = '\0';
 
-  for (i = 0; i < len; i++)
-    text.append(outbuf[i]);
+  text.append(outbuf);
 }
 
 } // anonymous namespace


More information about the Libreoffice-commits mailing list