Mercurial > hg > truffle
diff src/share/vm/classfile/symbolTable.hpp @ 12275:63147986a428
8019835: Strings interned in different threads equal but does not ==
Summary: Add -XX:+VerifyStringTableAtExit option and code to verify StringTable invariants.
Reviewed-by: rdurbin, sspitsyn, coleenp
author | dcubed |
---|---|
date | Wed, 18 Sep 2013 07:02:10 -0700 |
parents | 01522ca68fc7 |
children | c90e76575b03 |
line wrap: on
line diff
--- a/src/share/vm/classfile/symbolTable.hpp Tue Sep 17 20:20:03 2013 +0200 +++ b/src/share/vm/classfile/symbolTable.hpp Wed Sep 18 07:02:10 2013 -0700 @@ -311,6 +311,26 @@ static void verify(); static void dump(outputStream* st); + enum VerifyMesgModes { + _verify_quietly = 0, + _verify_with_mesgs = 1 + }; + + enum VerifyRetTypes { + _verify_pass = 0, + _verify_fail_continue = 1, + _verify_fail_done = 2 + }; + + static VerifyRetTypes compare_entries(int bkt1, int e_cnt1, + HashtableEntry<oop, mtSymbol>* e_ptr1, + int bkt2, int e_cnt2, + HashtableEntry<oop, mtSymbol>* e_ptr2); + static VerifyRetTypes verify_entry(int bkt, int e_cnt, + HashtableEntry<oop, mtSymbol>* e_ptr, + VerifyMesgModes mesg_mode); + static int verify_and_compare_entries(); + // Sharing static void copy_buckets(char** top, char*end) { the_table()->Hashtable<oop, mtSymbol>::copy_buckets(top, end);