diff options
author | fbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-09 09:51:37 +0000 |
---|---|---|
committer | fbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-09 09:51:37 +0000 |
commit | 7f5dfbf327c9f19e9b739e81c1c1f6b11d47d4b5 (patch) | |
tree | 770e39008e4d6d18f35ae76a98a970116da3264b /media/base/djb2.cc | |
parent | ef1f6d8071ed54a6126d2a963feef8d37283cbff (diff) | |
download | chromium_src-7f5dfbf327c9f19e9b739e81c1c1f6b11d47d4b5.zip chromium_src-7f5dfbf327c9f19e9b739e81c1c1f6b11d47d4b5.tar.gz chromium_src-7f5dfbf327c9f19e9b739e81c1c1f6b11d47d4b5.tar.bz2 |
DJB2 Hash for applications where high speed hash or checksum values are needed.
BUG=21126
TEST=djb2_unittest.cc has a quick test. will replace versions in media unittests and media_bench in future.
Review URL: http://codereview.chromium.org/193028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28532 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/djb2.cc')
-rw-r--r-- | media/base/djb2.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/media/base/djb2.cc b/media/base/djb2.cc new file mode 100644 index 0000000..3f790ed --- /dev/null +++ b/media/base/djb2.cc @@ -0,0 +1,16 @@ +// Copyright (c) 2009 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. + +#include "media/base/djb2.h" + +uint32 DJB2Hash(const void* buf, size_t len, uint32 hash) { + const uint8* s = reinterpret_cast<const uint8*>(buf); + if (len > 0) { + do { + hash = hash * 33 + *s++; + } while (--len); + } + return hash; +} + |