l10ntools/source/po.cxx |   11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

New commits:
commit dd83185b004e08fe0b291ede225d0e93be27c819
Author: Zolnai Tamás <[email protected]>
Date:   Fri Aug 31 18:19:32 2012 +0200

    Correct KeyId generator
    
    Use integer aritmetic and less cast
    
    Change-Id: I6fc0667fcbcee5f1a2dc964e2653c042338afa0c
    Reviewed-on: https://gerrit.libreoffice.org/523
    Reviewed-by: Andras Timar <[email protected]>
    Tested-by: Andras Timar <[email protected]>

diff --git a/l10ntools/source/po.cxx b/l10ntools/source/po.cxx
index a82a88b..59199c2 100644
--- a/l10ntools/source/po.cxx
+++ b/l10ntools/source/po.cxx
@@ -32,14 +32,15 @@ OString ImplGenKeyId(const OString& rGenerator)
     boost::crc_32_type aCRC32;
     aCRC32.process_bytes(rGenerator.getStr(), rGenerator.getLength());
     sal_uInt32 nCRC = aCRC32.checksum();
-    OString sKeyId = "";
-    while ( sKeyId.getLength() < 4 )
+    char sKeyId[5];
+    for(int nIndex = 0; nIndex < 4; ++nIndex)
     {
-        //Concat a char from the [33,126] interval of ASCII
-        sKeyId += OString(char(int(double(nCRC & 255)/255*93)+33));
+        //Get a char from the [33,126] interval of ASCII
+        sKeyId[nIndex] = static_cast<char>((nCRC & 255) % 93 + 33);
         nCRC >>= 8;
     }
-    return sKeyId;
+    sKeyId[4] = 0;
+    return OString(sKeyId);
 }
 
 //Escape text
_______________________________________________
Libreoffice-commits mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to