< prev index next >
src/hotspot/share/code/nmethod.cpp
Print this page
@@ -2190,10 +2190,21 @@
}
}
virtual void do_oop(narrowOop* p) { ShouldNotReachHere(); }
};
+class VerifyMetadataClosure: public MetadataClosure {
+ public:
+ void do_metadata(Metadata* md) {
+ if (md->is_method()) {
+ Method* method = (Method*)md;
+ assert(!method->is_old(), "Should not be installing old methods");
+ }
+ }
+};
+
+
void nmethod::verify() {
// Hmm. OSR methods can be deopted but not marked as zombie or not_entrant
// seems odd.
@@ -2253,10 +2264,14 @@
oops_do(&voc);
assert(voc.ok(), "embedded oops must be OK");
Universe::heap()->verify_nmethod(this);
verify_scopes();
+
+ CompiledICLocker nm_verify(this);
+ VerifyMetadataClosure vmc;
+ metadata_do(&vmc);
}
void nmethod::verify_interrupt_point(address call_site) {
// Verify IC only when nmethod installation is finished.
< prev index next >