diff -r 9db898820f63 -r 126c5e7b97b1 src/hotspot/share/compiler/compileTask.cpp --- a/src/hotspot/share/compiler/compileTask.cpp Tue Jan 22 08:50:49 2019 +0100 +++ b/src/hotspot/share/compiler/compileTask.cpp Tue Jan 22 10:12:05 2019 +0100 @@ -72,6 +72,12 @@ JNIHandles::destroy_global(task->_method_holder); JNIHandles::destroy_global(task->_hot_method_holder); + if (task->_failure_reason_on_C_heap && task->_failure_reason != NULL) { + os::free((void*) task->_failure_reason); + } + task->_failure_reason = NULL; + task->_failure_reason_on_C_heap = false; + task->set_is_free(true); task->set_next(_task_free_list); _task_free_list = task; @@ -110,6 +116,7 @@ _time_queued = 0; // tidy _compile_reason = compile_reason; _failure_reason = NULL; + _failure_reason_on_C_heap = false; if (LogCompilation) { _time_queued = os::elapsed_counter();