diff options
author | bashi@chromium.org <bashi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-18 23:34:41 +0000 |
---|---|---|
committer | bashi@chromium.org <bashi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-18 23:34:41 +0000 |
commit | 50cf47f0c5a315d9f0c092ece1f3c9d207dbd650 (patch) | |
tree | 9c2b550cf1e892ae4b9283fd5f995d07eb1e5e9f /third_party/lzma_sdk/7zCrc.c | |
parent | 23981084df9ff50201ae6971b743270bd35e0e4b (diff) | |
download | chromium_src-50cf47f0c5a315d9f0c092ece1f3c9d207dbd650.zip chromium_src-50cf47f0c5a315d9f0c092ece1f3c9d207dbd650.tar.gz chromium_src-50cf47f0c5a315d9f0c092ece1f3c9d207dbd650.tar.bz2 |
Revert 132887 - Update lzma_sdk to 9.20
Copied only C code required to open 7z archive files and
uncompress LZMA compression.
Updated chrome/installer/util/lzma_util.cc to follow API
changes.
BUG=None
TEST=installer_util_unittests --gtest_filter='LzmaUtilTest.*'
Review URL: http://codereview.chromium.org/10114005
TBR=bashi@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10035048
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132895 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/lzma_sdk/7zCrc.c')
-rw-r--r-- | third_party/lzma_sdk/7zCrc.c | 74 |
1 files changed, 16 insertions, 58 deletions
diff --git a/third_party/lzma_sdk/7zCrc.c b/third_party/lzma_sdk/7zCrc.c index a9208496..61050dd 100644 --- a/third_party/lzma_sdk/7zCrc.c +++ b/third_party/lzma_sdk/7zCrc.c @@ -1,50 +1,9 @@ -/* 7zCrc.c -- CRC32 calculation -2009-11-23 : Igor Pavlov : Public domain */ +/* 7zCrc.c */ #include "7zCrc.h" -#include "CpuArch.h" #define kCrcPoly 0xEDB88320 - -#ifdef MY_CPU_LE -#define CRC_NUM_TABLES 8 -#else -#define CRC_NUM_TABLES 1 -#endif - -typedef UInt32 (MY_FAST_CALL *CRC_FUNC)(UInt32 v, const void *data, size_t size, const UInt32 *table); - -static CRC_FUNC g_CrcUpdate; -UInt32 g_CrcTable[256 * CRC_NUM_TABLES]; - -#if CRC_NUM_TABLES == 1 - -#define CRC_UPDATE_BYTE_2(crc, b) (table[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8)) - -static UInt32 MY_FAST_CALL CrcUpdateT1(UInt32 v, const void *data, size_t size, const UInt32 *table) -{ - const Byte *p = (const Byte *)data; - for (; size > 0; size--, p++) - v = CRC_UPDATE_BYTE_2(v, *p); - return v; -} - -#else - -UInt32 MY_FAST_CALL CrcUpdateT4(UInt32 v, const void *data, size_t size, const UInt32 *table); -UInt32 MY_FAST_CALL CrcUpdateT8(UInt32 v, const void *data, size_t size, const UInt32 *table); - -#endif - -UInt32 MY_FAST_CALL CrcUpdate(UInt32 v, const void *data, size_t size) -{ - return g_CrcUpdate(v, data, size, g_CrcTable); -} - -UInt32 MY_FAST_CALL CrcCalc(const void *data, size_t size) -{ - return g_CrcUpdate(CRC_INIT_VAL, data, size, g_CrcTable) ^ CRC_INIT_VAL; -} +UInt32 g_CrcTable[256]; void MY_FAST_CALL CrcGenerateTable() { @@ -52,23 +11,22 @@ void MY_FAST_CALL CrcGenerateTable() for (i = 0; i < 256; i++) { UInt32 r = i; - unsigned j; + int j; for (j = 0; j < 8; j++) r = (r >> 1) ^ (kCrcPoly & ~((r & 1) - 1)); g_CrcTable[i] = r; } - #if CRC_NUM_TABLES == 1 - g_CrcUpdate = CrcUpdateT1; - #else - for (; i < 256 * CRC_NUM_TABLES; i++) - { - UInt32 r = g_CrcTable[i - 256]; - g_CrcTable[i] = g_CrcTable[r & 0xFF] ^ (r >> 8); - } - g_CrcUpdate = CrcUpdateT4; - #ifdef MY_CPU_X86_OR_AMD64 - if (!CPU_Is_InOrder()) - g_CrcUpdate = CrcUpdateT8; - #endif - #endif +} + +UInt32 MY_FAST_CALL CrcUpdate(UInt32 v, const void *data, size_t size) +{ + const Byte *p = (const Byte *)data; + for (; size > 0 ; size--, p++) + v = CRC_UPDATE_BYTE(v, *p); + return v; +} + +UInt32 MY_FAST_CALL CrcCalc(const void *data, size_t size) +{ + return CrcUpdate(CRC_INIT_VAL, data, size) ^ 0xFFFFFFFF; } |