diff options
author | dgarrett@chromium.org <dgarrett@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 22:59:16 +0000 |
---|---|---|
committer | dgarrett@chromium.org <dgarrett@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 22:59:16 +0000 |
commit | f73cf9884bbb2b75b0ed402e4391bcce4dd6fb9c (patch) | |
tree | f6a2040f66bf8f88ba72aea26a8e0972a194f93e /courgette | |
parent | 05c5901e8e29c9b9b097cc84e04d745e17c9673c (diff) | |
download | chromium_src-f73cf9884bbb2b75b0ed402e4391bcce4dd6fb9c.zip chromium_src-f73cf9884bbb2b75b0ed402e4391bcce4dd6fb9c.tar.gz chromium_src-f73cf9884bbb2b75b0ed402e4391bcce4dd6fb9c.tar.bz2 |
Use a different define to decide which CRC library to use.
Change 8569018 used a #ifdef to conditionally decide which external
library to use for Crc calculation. It used OS_CHROMIUMOS to tell
if the build was targetted at Chromium OS.
However, it broke Chromium OS builds of the full Chromium tree in
some cases (heapcheck bots), and was reverted.
Since I really only want to change the library when building from
inside a custom ebuild in the Chromium OS build, it makes sense
to use a #define custom to that ebuild.
So, this change is the same as 8569018, except that is uses
COURGETTE_USE_CRC_LIB instead of OS_CHROMIUMOS.
BUG=8569018
Review URL: http://codereview.chromium.org/8763014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112565 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'courgette')
-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..28a0f9c 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 COURGETTE_USE_CRC_LIB +# 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 COURGETTE_USE_CRC_LIB + // 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 |