diff options
author | Marco Cecchetti <marco.cecchetti@collabora.com> | 2015-08-26 13:50:57 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-09-02 07:21:48 +0000 |
commit | f85ed94f46e9f1b15cb42d66380e666ce7ee71ee (patch) | |
tree | 5de381aeb3868ce9c95242deeecbc875de6b89a2 /svtools | |
parent | 7017ab3559f8298f9afa364171531a10782d8d29 (diff) |
tdf#93532 - Switching to 64-bit checksum
Added a C++ and a GLSL implementation of a 64-bit CRC algorithm.
Changed hardcoded checksum value in ooxmlimport unit test (testN777345).
Change-Id: I16bb985a14866775efda49e21fe033ff64645896
Reviewed-on: https://gerrit.libreoffice.org/18254
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/source/graphic/grfcache.cxx | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/svtools/source/graphic/grfcache.cxx b/svtools/source/graphic/grfcache.cxx index 05c1f98c5cf5..28e4ab0a457e 100644 --- a/svtools/source/graphic/grfcache.cxx +++ b/svtools/source/graphic/grfcache.cxx @@ -43,7 +43,7 @@ private: sal_uInt32 mnID1; sal_uInt32 mnID2; sal_uInt32 mnID3; - sal_uInt32 mnID4; + BitmapChecksum mnID4; public: @@ -79,7 +79,7 @@ GraphicID::GraphicID( const GraphicObject& rObj ) mnID1 |= rSvgDataPtr->getSvgDataArrayLength(); mnID2 = basegfx::fround(rRange.getWidth()); mnID3 = basegfx::fround(rRange.getHeight()); - mnID4 = rtl_crc32(0, rSvgDataPtr->getSvgDataArray().get(), rSvgDataPtr->getSvgDataArrayLength()); + mnID4 = vcl_get_checksum(0, rSvgDataPtr->getSvgDataArray().get(), rSvgDataPtr->getSvgDataArrayLength()); } else if( rGraphic.IsAnimated() ) { @@ -123,7 +123,7 @@ OString GraphicID::GetIDString() const { OStringBuffer aHexStr; sal_Int32 nShift, nIndex = 0; - aHexStr.setLength(32); + aHexStr.setLength(24 + (2 * BITMAP_CHECKSUM_SIZE)); for( nShift = 28; nShift >= 0; nShift -= 4 ) aHexStr[nIndex++] = aHexData[ ( mnID1 >> (sal_uInt32) nShift ) & 0xf ]; @@ -134,7 +134,7 @@ OString GraphicID::GetIDString() const for( nShift = 28; nShift >= 0; nShift -= 4 ) aHexStr[nIndex++] = aHexData[ ( mnID3 >> (sal_uInt32) nShift ) & 0xf ]; - for( nShift = 28; nShift >= 0; nShift -= 4 ) + for( nShift = BITMAP_CHECKSUM_BITS - 4; nShift >= 0; nShift -= 4 ) aHexStr[nIndex++] = aHexData[ ( mnID4 >> (sal_uInt32) nShift ) & 0xf ]; return aHexStr.makeStringAndClear(); |