[Libreoffice-commits] core.git: binaryurp/source

Stephan Bergmann sbergman at redhat.com
Fri Sep 16 12:19:41 UTC 2016


 binaryurp/source/writer.cxx |   24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

New commits:
commit c480677f5f654ada532dfba21e3d34718c977131
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Fri Sep 16 10:52:25 2016 +0200

    In binaryurp, fix change from rtl_copyMemory to memcpy
    
    ...done in 36a2db3722b79ed3df075d7f3fa77fb761bcf5a4 "Replace usage of
    rtl_*Memory with equivalent from string.h"
    
    Change-Id: I068feab3140cdcb34ea8c80e273ea2761f0efb7f
    Reviewed-on: https://gerrit.libreoffice.org/28941
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
    Tested-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/binaryurp/source/writer.cxx b/binaryurp/source/writer.cxx
index 7558f82..54373d1 100644
--- a/binaryurp/source/writer.cxx
+++ b/binaryurp/source/writer.cxx
@@ -19,9 +19,12 @@
 
 #include "sal/config.h"
 
+#include <cassert>
+#include <cstddef>
+#include <cstring>
 #include <exception>
+#include <limits>
 #include <vector>
-#include <string.h>
 
 #include "com/sun/star/connection/XConnection.hpp"
 #include "com/sun/star/lang/WrappedTargetRuntimeException.hpp"
@@ -411,18 +414,17 @@ void Writer::sendMessage(std::vector< unsigned char > const & buffer) {
     OSL_ASSERT(!buffer.empty());
     unsigned char const * p = &buffer[0];
     std::vector< unsigned char >::size_type n = buffer.size();
-    OSL_ASSERT(header.size() <= SAL_MAX_INT32 && SAL_MAX_INT32 <= SAL_MAX_SIZE);
-    sal_Size k = SAL_MAX_INT32 - header.size();
+    OSL_ASSERT(header.size() <= SAL_MAX_INT32);
+    /*static_*/assert(SAL_MAX_INT32 <= std::numeric_limits<std::size_t>::max());
+    std::size_t k = SAL_MAX_INT32 - header.size();
     if (n < k) {
-        k = static_cast< sal_Size >(n);
+        k = n;
     }
-    css::uno::Sequence< sal_Int8 > s(
-        static_cast< sal_Int32 >(header.size() + k));
+    css::uno::Sequence<sal_Int8> s(header.size() + k);
     OSL_ASSERT(!header.empty());
-    memcpy(
-        s.getArray(), &header[0], static_cast< sal_Size >(header.size()));
+    std::memcpy(s.getArray(), &header[0], header.size());
     for (;;) {
-        memcpy(s.getArray() + s.getLength() - k, p, k);
+        std::memcpy(s.getArray() + s.getLength() - k, p, k);
         try {
             bridge_->getConnection()->write(s);
         } catch (const css::io::IOException & e) {
@@ -431,14 +433,14 @@ void Writer::sendMessage(std::vector< unsigned char > const & buffer) {
                 "Binary URP write raised IO exception: " + e.Message,
                 css::uno::Reference< css::uno::XInterface >(), exc);
         }
-        n = static_cast< std::vector< unsigned char >::size_type >(n - k);
+        n -= k;
         if (n == 0) {
             break;
         }
         p += k;
         k = SAL_MAX_INT32;
         if (n < k) {
-            k = static_cast< sal_Size >(n);
+            k = n;
         }
         s.realloc(k);
     }


More information about the Libreoffice-commits mailing list