changeset 9913:35f93560b1f0

ensure that <clinit> for HotSpotOptions is called irrespective of whether and -G: options are specified
author Doug Simon <doug.simon@oracle.com>
date Thu, 06 Jun 2013 17:27:07 +0200
parents fbad7372eccd
children 84890660eefb
files src/share/vm/graal/graalCompiler.cpp src/share/vm/graal/graalVMToCompiler.cpp src/share/vm/graal/graalVMToCompiler.hpp
diffstat 3 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/graal/graalCompiler.cpp	Thu Jun 06 15:35:52 2013 +0200
+++ b/src/share/vm/graal/graalCompiler.cpp	Thu Jun 06 17:27:07 2013 +0200
@@ -85,6 +85,7 @@
   {
     GRAAL_VM_ENTRY_MARK;
     HandleMark hm;
+    VMToCompiler::initOptions();
     for (int i = 0; i < Arguments::num_graal_args(); ++i) {
       const char* arg = Arguments::graal_args_array()[i];
       Handle option = java_lang_String::create_from_str(arg, THREAD);
--- a/src/share/vm/graal/graalVMToCompiler.cpp	Thu Jun 06 15:35:52 2013 +0200
+++ b/src/share/vm/graal/graalVMToCompiler.cpp	Thu Jun 06 17:27:07 2013 +0200
@@ -75,6 +75,13 @@
   return Handle(JNIHandles::resolve_non_null(_vmToCompilerPermObject));
 }
 
+void VMToCompiler::initOptions() {
+  KlassHandle compilerKlass = loadClass(vmSymbols::com_oracle_graal_hotspot_HotSpotOptions());
+  Thread* THREAD = Thread::current();
+  compilerKlass->initialize(THREAD);
+  check_pending_exception("Error while calling initOptions");
+}
+
 jboolean VMToCompiler::setOption(Handle option) {
   assert(!option.is_null(), "");
   KlassHandle compilerKlass = loadClass(vmSymbols::com_oracle_graal_hotspot_HotSpotOptions());
--- a/src/share/vm/graal/graalVMToCompiler.hpp	Thu Jun 06 15:35:52 2013 +0200
+++ b/src/share/vm/graal/graalVMToCompiler.hpp	Thu Jun 06 17:27:07 2013 +0200
@@ -50,6 +50,9 @@
     return _graalRuntimePermObject;
   }
 
+  // public static boolean HotSpotOptions.<clinit>();
+  static void initOptions();
+
   // public static boolean HotSpotOptions.setOption(String option);
   static jboolean setOption(Handle option);