Mercurial > hg > graal-jvmci-8
diff src/share/vm/oops/oop.cpp @ 6948:e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 12 Nov 2012 23:14:12 +0100 |
parents | da91efe96a93 |
children | f34d701e952e |
line wrap: on
line diff
--- a/src/share/vm/oops/oop.cpp Mon Nov 12 18:11:17 2012 +0100 +++ b/src/share/vm/oops/oop.cpp Mon Nov 12 23:14:12 2012 +0100 @@ -23,6 +23,7 @@ */ #include "precompiled.hpp" +#include "classfile/altHashing.hpp" #include "classfile/javaClasses.hpp" #include "oops/oop.inline.hpp" #include "runtime/handles.inline.hpp" @@ -48,7 +49,7 @@ if (this == NULL) { st->print_cr("NULL"); } else { - blueprint()->oop_print_on(oop(this), st); + klass()->oop_print_on(oop(this), st); } } @@ -86,19 +87,15 @@ } else if (java_lang_String::is_instance(obj)) { java_lang_String::print(obj, st); if (PrintOopAddress) print_address_on(st); -#ifdef ASSERT - } else if (!Universe::heap()->is_in(obj) || !Universe::heap()->is_in(klass())) { - st->print("### BAD OOP %p ###", (address)obj); -#endif //ASSERT } else { - blueprint()->oop_print_value_on(obj, st); + klass()->oop_print_value_on(obj, st); } } void oopDesc::verify_on(outputStream* st) { if (this != NULL) { - blueprint()->oop_verify_on(this, st); + klass()->oop_verify_on(this, st); } } @@ -107,25 +104,23 @@ verify_on(tty); } -bool oopDesc::partially_loaded() { - return blueprint()->oop_partially_loaded(this); -} - - -void oopDesc::set_partially_loaded() { - blueprint()->oop_set_partially_loaded(this); -} - - intptr_t oopDesc::slow_identity_hash() { // slow case; we have to acquire the micro lock in order to locate the header ResetNoHandleMark rnm; // Might be called from LEAF/QUICK ENTRY HandleMark hm; - Handle object((oop)this); - assert(!is_shared_readonly(), "using identity hash on readonly object?"); + Handle object(this); return ObjectSynchronizer::identity_hash_value_for(object); } +// When String table needs to rehash +unsigned int oopDesc::new_hash(jint seed) { + ResourceMark rm; + int length; + jchar* chars = java_lang_String::as_unicode_string(this, length); + // Use alternate hashing algorithm on the string + return AltHashing::murmur3_32(seed, chars, length); +} + VerifyOopClosure VerifyOopClosure::verify_oop; void VerifyOopClosure::do_oop(oop* p) { VerifyOopClosure::do_oop_work(p); }