comparison src/share/vm/oops/method.hpp @ 7176:59c790074993

8003635: NPG: AsynchGetCallTrace broken by Method* virtual call Summary: Make metaspace::contains be lock free and used to see if something is in metaspace, also compare Method* with vtbl pointer. Reviewed-by: dholmes, sspitsyn, dcubed, jmasa
author coleenp
date Wed, 28 Nov 2012 17:50:21 -0500
parents 18fb7da42534
children 5505fbbae3d3
comparison
equal deleted inserted replaced
7175:b51dc8df86e5 7176:59c790074993
167 int exception_table_length, 167 int exception_table_length,
168 int checked_exceptions_length, 168 int checked_exceptions_length,
169 ConstMethod::MethodType method_type, 169 ConstMethod::MethodType method_type,
170 TRAPS); 170 TRAPS);
171 171
172 Method() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); } 172 // CDS and vtbl checking can create an empty Method to get vtbl pointer.
173 Method(){}
173 174
174 // The Method vtable is restored by this call when the Method is in the 175 // The Method vtable is restored by this call when the Method is in the
175 // shared archive. See patch_klass_vtables() in metaspaceShared.cpp for 176 // shared archive. See patch_klass_vtables() in metaspaceShared.cpp for
176 // all the gory details. SA, dtrace and pstack helpers distinguish metadata 177 // all the gory details. SA, dtrace and pstack helpers distinguish metadata
177 // by their vtable. 178 // by their vtable.
809 void print_on(outputStream* st) const; 810 void print_on(outputStream* st) const;
810 #endif 811 #endif
811 void print_value_on(outputStream* st) const; 812 void print_value_on(outputStream* st) const;
812 813
813 const char* internal_name() const { return "{method}"; } 814 const char* internal_name() const { return "{method}"; }
815
816 // Check for valid method pointer
817 bool is_valid_method() const;
814 818
815 // Verify 819 // Verify
816 void verify() { verify_on(tty); } 820 void verify() { verify_on(tty); }
817 void verify_on(outputStream* st); 821 void verify_on(outputStream* st);
818 822