< prev index next >

src/hotspot/share/classfile/classLoaderStats.hpp

Print this page
rev 59248 : 8244777: ClassLoaderStats VM Op uses constant hash value

*** 100,111 **** static bool oop_equals(oop const& s1, oop const& s2) { return s1 == s2; } static unsigned oop_hash(oop const& s1) { ! unsigned hash = (unsigned)((uintptr_t)&s1); ! return hash ^ (hash >> LogMinObjAlignment); } typedef ResourceHashtable<oop, ClassLoaderStats*, ClassLoaderStatsClosure::oop_hash, ClassLoaderStatsClosure::oop_equals> StatsTable; --- 100,118 ---- static bool oop_equals(oop const& s1, oop const& s2) { return s1 == s2; } static unsigned oop_hash(oop const& s1) { ! uintptr_t tmp = cast_from_oop<uintptr_t>(s1); ! unsigned hash = (unsigned)tmp; ! hash = ~hash + (hash << 15); ! hash = hash ^ (hash >> 12); ! hash = hash + (hash << 2); ! hash = hash ^ (hash >> 4); ! hash = hash * 2057; ! hash = hash ^ (hash >> 16); ! return hash; } typedef ResourceHashtable<oop, ClassLoaderStats*, ClassLoaderStatsClosure::oop_hash, ClassLoaderStatsClosure::oop_equals> StatsTable;
< prev index next >