diff src/share/vm/graal/graalCodeInstaller.cpp @ 13156:2e76d94f8383

propagate code-cache-full message up to Java to throw exception instead of crashing VM
author twisti
date Mon, 25 Nov 2013 15:10:04 -0800
parents ff1d8605f354
children 0ffe9e4bb364
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.cpp	Mon Nov 25 17:23:56 2013 +0100
+++ b/src/share/vm/graal/graalCodeInstaller.cpp	Mon Nov 25 15:10:04 2013 -0800
@@ -361,8 +361,13 @@
 
 // constructor used to create a method
 CodeInstaller::CodeInstaller(Handle& compiled_code, GraalEnv::CodeInstallResult& result, CodeBlob*& cb, Handle installed_code, Handle triggered_deoptimizations) {
-  GraalCompiler::initialize_buffer_blob();
-  CodeBuffer buffer(JavaThread::current()->get_buffer_blob());
+  BufferBlob* buffer_blob = GraalCompiler::initialize_buffer_blob();
+  if (buffer_blob == NULL) {
+    result = GraalEnv::cache_full;
+    return;
+  }
+
+  CodeBuffer buffer(buffer_blob);
   jobject compiled_code_obj = JNIHandles::make_local(compiled_code());
   initialize_assumptions(JNIHandles::resolve(compiled_code_obj));