diff options
-rw-r--r-- | courgette/crc.cc | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/courgette/crc.cc b/courgette/crc.cc index 02b7fe9..6af7a18 100644 --- a/courgette/crc.cc +++ b/courgette/crc.cc @@ -1,22 +1,34 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Calculate Crc by calling CRC method in LZMA SDK - #include "courgette/crc.h" +#ifdef OS_CHROMEOS +# include "zlib.h" +#else extern "C" { -#include "third_party/lzma_sdk/7zCrc.h" +# include "third_party/lzma_sdk/7zCrc.h" } +#endif + +#include "base/basictypes.h" namespace courgette { uint32 CalculateCrc(const uint8* buffer, size_t size) { + uint32 crc; + +#ifdef OS_CHROMEOS + // Calculate Crc by calling CRC method in zlib + crc = crc32(0, buffer, size); +#else + // Calculate Crc by calling CRC method in LZMA SDK CrcGenerateTable(); - uint32 crc = 0xffffffffL; - crc = ~CrcCalc(buffer, size); - return crc; + crc = CrcCalc(buffer, size); +#endif + + return ~crc; } } // namespace |