8214401: [AOT] crash in ClassLoaderData::is_alive() with AOTed jdk.base
Reviewed-by: kvn, dlong
--- a/src/hotspot/share/aot/aotCompiledMethod.cpp Thu Dec 06 10:46:10 2018 -0500
+++ b/src/hotspot/share/aot/aotCompiledMethod.cpp Thu Dec 06 18:11:53 2018 +0100
@@ -155,6 +155,10 @@
ShouldNotReachHere(); return NULL;
}
+void AOTCompiledMethod::do_unloading(bool unloading_occurred) {
+ unload_nmethod_caches(unloading_occurred);
+}
+
bool AOTCompiledMethod::make_not_entrant_helper(int new_state) {
// Make sure the method is not flushed in case of a safepoint in code below.
methodHandle the_method(method());
--- a/src/hotspot/share/aot/aotCompiledMethod.hpp Thu Dec 06 10:46:10 2018 -0500
+++ b/src/hotspot/share/aot/aotCompiledMethod.hpp Thu Dec 06 18:11:53 2018 +0100
@@ -265,6 +265,7 @@
#endif
}
+ virtual void do_unloading(bool unloading_occurred);
protected:
// AOT compiled methods are not flushed
--- a/src/hotspot/share/code/compiledMethod.hpp Thu Dec 06 10:46:10 2018 -0500
+++ b/src/hotspot/share/code/compiledMethod.hpp Thu Dec 06 18:11:53 2018 +0100
@@ -400,7 +400,7 @@
virtual bool is_unloading() = 0;
bool unload_nmethod_caches(bool class_unloading_occurred);
- virtual void do_unloading(bool unloading_occurred) { }
+ virtual void do_unloading(bool unloading_occurred) = 0;
private:
PcDesc* find_pc_desc(address pc, bool approximate) {