< prev index next >
src/share/vm/oops/method.cpp
Print this page
rev 10298 : 8147978: Remove Method::_method_data for C1
Summary: Method::_method_data field removed when not using C2 or JVMCI
Reviewed-by: dholmes, kvn
@@ -381,18 +381,19 @@
// Grab a lock here to prevent multiple
// MethodData*s from being created.
MutexLocker ml(MethodData_lock, THREAD);
if (method->method_data() == NULL) {
ClassLoaderData* loader_data = method->method_holder()->class_loader_data();
+#if defined(COMPILER2) || INCLUDE_JVMCI
MethodData* method_data = MethodData::allocate(loader_data, method, THREAD);
if (HAS_PENDING_EXCEPTION) {
CompileBroker::log_metaspace_failure();
ClassLoaderDataGraph::set_metaspace_oom(true);
return; // return the exception (which is cleared)
}
-
method->set_method_data(method_data);
+#endif
if (PrintMethodData && (Verbose || WizardMode)) {
ResourceMark rm(THREAD);
tty->print("build_interpreter_method_data for ");
method->print_name(tty);
tty->cr();
@@ -918,11 +919,11 @@
//
// During runtime (!DumpSharedSpaces), when we are cleaning a
// shared class that failed to load, this->link_method() may
// have already been called (before an exception happened), so
// this->_method_data may not be NULL.
- assert(!DumpSharedSpaces || _method_data == NULL, "unexpected method data?");
+ assert(!DumpSharedSpaces || method_data() == NULL, "unexpected method data?");
set_method_data(NULL);
clear_method_counters();
}
< prev index next >