Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1607)

Unified Diff: Source/core/scripts/hasher.py

Issue 26414004: Move core/scripts to build/scripts so that platform can use them. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/scripts/hasher.py
diff --git a/Source/core/scripts/hasher.py b/Source/core/scripts/hasher.py
deleted file mode 100644
index ffcd5a7b6f06768e72cbf220613164b262d8b9fc..0000000000000000000000000000000000000000
--- a/Source/core/scripts/hasher.py
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/python
-# Copyright (C) 2013 Google, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public License
-# along with this library; see the file COPYING.LIB. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301, USA.
-
-# This implementaiton of SuperFastHash is based on the Python implementation
-# by Victor Perron at <https://github.com/vperron/python-superfasthash>.
-# We've modified Victor's version to output hash values that match WTFString,
-# which involves using a specific seed and some different constants.
-
-class uint32_t(long):
- def __rshift__(self, other):
- return uint32_t(long.__rshift__(self, other) & ((1L << 32) - 1))
-
- def __lshift__(self, other):
- return uint32_t(long.__lshift__(self, other) & ((1L << 32) - 1))
-
- def __add__(self, other):
- return uint32_t(long.__add__(self, other) & ((1L << 32) - 1))
-
- def __xor__(self, other):
- return uint32_t(long.__xor__(self, other) & ((1L << 32) - 1))
-
-
-def hash(string):
- """
- Stream-adapted SuperFastHash algorithm from Paul Hsieh,
- http://www.azillionmonkeys.com/qed/hash.html
- LGPLv2.1
- Python version with no dependencies.
- Victor Perron <victor@iso3103.net>
- """
-
- if not string:
- return 0
-
- result = uint32_t(0x9E3779B9L)
- length = len(string)
- remainder = length & 1
- length >>= 1
-
- i = 0
- while length > 0:
- length -= 1
- result += ord(string[i])
- temp = (ord(string[i + 1]) << 11) ^ result
- result = (result << 16) ^ temp
- i += 2
- result += (result >> 11)
-
- if remainder == 1:
- result += ord(string[i])
- result ^= (result << 11)
- result += (result >> 17)
-
- # Force "avalanching" of final 127 bits
- result ^= (result << 3)
- result += (result >> 5)
- result ^= (result << 2)
- result += (result >> 15)
- result ^= (result << 10)
-
- # Save 8 bits for StringImpl to use as flags.
- result &= 0xffffff
-
- # This avoids ever returning a hash code of 0, since that is used to
- # signal "hash not computed yet".
- assert result != 0
-
- return result

Powered by Google App Engine
This is Rietveld 408576698