aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/include/jvm.h5
2 files changed, 8 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 66bec43..a7fa378 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2000-09-06 Jeff Sturm <jeff.sturm@appnet.com>
+
+ * include/jvm.h (_Jv_HashCode): Cast object ptr to `unsigned long'
+ to avoid long long division.
+
2000-09-06 Tom Tromey <tromey@cygnus.com>
* java/lang/reflect/Constructor.java (toString): Use `getName' for
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
index 6517885..e6e6fa6 100644
--- a/libjava/include/jvm.h
+++ b/libjava/include/jvm.h
@@ -164,8 +164,9 @@ inline jint
_Jv_HashCode (jobject obj)
{
// This was chosen to yield relatively well distributed results on
- // both 32- and 64-bit architectures.
- return (jint) ((unsigned long long) obj % 0x7fffffff);
+ // both 32- and 64-bit architectures. Note 0x7fffffff is prime.
+ // FIXME: we assume sizeof(long) == sizeof(void *).
+ return (jint) ((unsigned long) obj % 0x7fffffff);
}
// Return a raw pointer to the elements of an array given the array