< 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 >