From dffdc1e97b6ce713ceefcc2a50552dcb9a225e55 Mon Sep 17 00:00:00 2001 From: Alexander Koshevoy Date: Fri, 18 Sep 2015 15:04:54 +0300 Subject: [PATCH] PY-15476 Details about using Python String.hashCode() implementation in generator3.py as hash for directory paths added --- python/helpers/generator3.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/python/helpers/generator3.py b/python/helpers/generator3.py index fb9fdf60ba82..9274d52efa76 100644 --- a/python/helpers/generator3.py +++ b/python/helpers/generator3.py @@ -165,7 +165,7 @@ def list_sources(paths, target_path): if path.endswith('.egg') and os.path.isfile(path): say("%s\t%s\t%d", path, path, os.path.getsize(path)) - target_dir_hash = str(java_string_hashcode(path)) + target_dir_hash = str(compute_path_hash(path)) for root, files in walk_python_path(path): for name in files: @@ -186,9 +186,10 @@ def list_sources(paths, target_path): traceback.print_exc() sys.exit(1) -def java_string_hashcode(s): +def compute_path_hash(path): + # computes hash for provided path following contract of Java String's hashCode() method h = 0 - for c in s: + for c in path: h = (31 * h + ord(c)) & 0xFFFFFFFF return ((h + 0x80000000) & 0xFFFFFFFF) - 0x80000000