[ltrace-commits] 03/03: dict_hash_uint64: do not ignore upper 32 bits of the quantity

Petr Machata pmachata-guest at moszumanska.debian.org
Tue Jun 17 18:41:52 UTC 2014


This is an automated email from the git hooks/post-receive script.

pmachata-guest pushed a commit to branch master
in repository ltrace.

commit 0896ce554f80afdcba81d9754f6104f863dea803
Author: Petr Machata <pmachata at redhat.com>
Date:   Tue Jun 17 17:06:00 2014 +0200

    dict_hash_uint64: do not ignore upper 32 bits of the quantity
---
 dict.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/dict.c b/dict.c
index c9a449b..236e90e 100644
--- a/dict.c
+++ b/dict.c
@@ -1,6 +1,6 @@
 /*
  * This file is part of ltrace.
- * Copyright (C) 2012, 2013 Petr Machata, Red Hat Inc.
+ * Copyright (C) 2012, 2013, 2014 Petr Machata, Red Hat Inc.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -476,11 +476,9 @@ dict_eq_int(const int *key1, const int *key2)
 size_t
 dict_hash_uint64(const uint64_t *key)
 {
-	// I use the same hash function as for 32-bit signed integers. This
-	// probably will not have great performance for values that don't fit
-	// into a 32-bit signed int, but this will do for now
-	int key32 = (int)(*key);
-	return dict_hash_int(&key32);
+	int const a = (int) *key;
+	int const b = (int) (*key >> 32);
+	return dict_hash_int (&a) ^ dict_hash_int (&b);
 }
 
 int

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/ltrace.git



More information about the ltrace-commits mailing list