comparison src/share/vm/code/nmethod.cpp @ 4320:125678ef7587

Fix compiled method unloading.
author Andreas Woess <andreas.woess@jku.at>
date Wed, 25 Jan 2012 14:09:59 +0100
parents 04b9a2566eec
children 723df37192d6 35ca3ade314d
comparison
equal deleted inserted replaced
4319:3c21eee8ab4d 4320:125678ef7587
1233 if (_method->code() == this) { 1233 if (_method->code() == this) {
1234 _method->clear_code(); // Break a cycle 1234 _method->clear_code(); // Break a cycle
1235 } 1235 }
1236 _method = NULL; // Clear the method of this dead nmethod 1236 _method = NULL; // Clear the method of this dead nmethod
1237 } 1237 }
1238
1239 #ifdef GRAAL
1240 if (_graal_compiled_method != NULL) {
1241 HotSpotCompiledMethod::set_nmethod(_graal_compiled_method, 0);
1242 _graal_compiled_method = NULL;
1243 }
1244 #endif
1245
1238 // Make the class unloaded - i.e., change state and notify sweeper 1246 // Make the class unloaded - i.e., change state and notify sweeper
1239 assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint"); 1247 assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint");
1240 if (is_in_use()) { 1248 if (is_in_use()) {
1241 // Transitioning directly from live to unloaded -- so 1249 // Transitioning directly from live to unloaded -- so
1242 // we need to force a cache clean-up; remember this 1250 // we need to force a cache clean-up; remember this