summaryrefslogtreecommitdiffstats
path: root/courgette
diff options
context:
space:
mode:
Diffstat (limited to 'courgette')
-rw-r--r--courgette/crc.cc26
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