[Libreoffice-commits] core.git: 2 commits - include/unotools sc/source

Eike Rathke erack at redhat.com
Tue Jun 3 06:57:01 PDT 2014


 include/unotools/digitgroupingiterator.hxx |   11 ++++-------
 sc/source/core/tool/interpr4.cxx           |   14 +++++++-------
 2 files changed, 11 insertions(+), 14 deletions(-)

New commits:
commit 06127e06e1d9d99e58b32e618c93667f70929249
Author: Eike Rathke <erack at redhat.com>
Date:   Tue Jun 3 15:55:28 2014 +0200

    eliminate xub_StrLen left-over
    
    Change-Id: I02e7700536f5a7fcc836a035aa0767b2a34be887

diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index f0f7c3a..c59431c 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -720,12 +720,12 @@ bool ScInterpreter::CreateStringArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
                     {
                         OString aTmp(OUStringToOString(aStr,
                             osl_getThreadTextEncoding()));
-                        // In case the xub_StrLen will be longer than USHORT
-                        // one day, and room for pad byte check.
+                        // Old Add-Ins are limited to sal_uInt16 string
+                        // lengths, and room for pad byte check.
                         if ( aTmp.getLength() > SAL_MAX_UINT16 - 2 )
                             return false;
                         // Append a 0-pad-byte if string length is odd
-                        //! MUST be sal_uInt16 and not xub_StrLen
+                        //! MUST be sal_uInt16
                         sal_uInt16 nStrLen = (sal_uInt16) aTmp.getLength();
                         sal_uInt16 nLen = ( nStrLen + 2 ) & ~1;
 
@@ -843,12 +843,12 @@ bool ScInterpreter::CreateCellArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
                         {
                             OString aTmp(OUStringToOString(aStr,
                                 osl_getThreadTextEncoding()));
-                            // In case the xub_StrLen will be longer than USHORT
-                            // one day, and room for pad byte check.
-                            if ( aTmp.getLength() > ((sal_uInt16)(~0)) - 2 )
+                            // Old Add-Ins are limited to sal_uInt16 string
+                            // lengths, and room for pad byte check.
+                            if ( aTmp.getLength() > SAL_MAX_UINT16 - 2 )
                                 return false;
                             // Append a 0-pad-byte if string length is odd
-                            //! MUST be sal_uInt16 and not xub_StrLen
+                            //! MUST be sal_uInt16
                             sal_uInt16 nStrLen = (sal_uInt16) aTmp.getLength();
                             sal_uInt16 nLen = ( nStrLen + 2 ) & ~1;
                             if ( ((sal_uLong)nPos + 2 + nLen) > MAXARRSIZE)
commit 85d1b74fd0866dc54a3745743acd1aa76ef30aaf
Author: Eike Rathke <erack at redhat.com>
Date:   Tue Jun 3 15:39:05 2014 +0200

    eliminate xub_StrLen left-over
    
    Change-Id: I4862481d69ac86bf082e35b28d6326444deafee8

diff --git a/include/unotools/digitgroupingiterator.hxx b/include/unotools/digitgroupingiterator.hxx
index d7bca11..ce1cf84 100644
--- a/include/unotools/digitgroupingiterator.hxx
+++ b/include/unotools/digitgroupingiterator.hxx
@@ -31,9 +31,8 @@ namespace utl {
     digits per group. If the last group was encountered the iterator will
     always return the last grouping.
 
-    Grouping values are sanitized to be 0 <= value <= SAL_MAX_UINT16, even if
-    originally Int32, to be able to easily cast it down to String's xub_StrLen.
-    This shouldn't make any difference in practice.
+    Grouping values are sanitized to be >= 0, even if originally signed
+    sal_Int32.
 
     Usage example with a string buffer containing a decimal representation of
     an integer number. Note that of course this loop could be optimized to not
@@ -81,11 +80,9 @@ class DigitGroupingIterator
         if (mnGroup < maGroupings.getLength())
         {
             sal_Int32 n = maGroupings[mnGroup];
-            OSL_ENSURE( 0 <= n && n <= SAL_MAX_UINT16, "DigitGroupingIterator::getGrouping: far out");
+            SAL_WARN_IF( n < 0, "unotools", "DigitGroupingIterator::getGrouping: negative grouping");
             if (n < 0)
-                n = 0;                  // sanitize ...
-            else if (n > SAL_MAX_UINT16)
-                n = SAL_MAX_UINT16;     // limit for use with xub_StrLen
+                n = 0;      // sanitize ...
             return n;
         }
         return 0;


More information about the Libreoffice-commits mailing list