< prev index next >

src/hotspot/share/compiler/compileTask.hpp

Print this page

        

@@ -102,13 +102,15 @@
   Method*      _hot_method;   // which method actually triggered this task
   jobject      _hot_method_holder;
   int          _hot_count;    // information about its invocation counter
   CompileReason _compile_reason;      // more info about the task
   const char*  _failure_reason;
+  // Specifies if _failure_reason is on the C heap.
+  bool         _failure_reason_on_C_heap;
 
  public:
-  CompileTask() {
+  CompileTask() : _failure_reason(NULL), _failure_reason_on_C_heap(false) {
     _lock = new Monitor(Mutex::nonleaf+2, "CompileTaskLock");
   }
 
   void initialize(int compile_id, const methodHandle& method, int osr_bci, int comp_level,
                   const methodHandle& hot_method, int hot_count,

@@ -197,12 +199,13 @@
   void         log_task(xmlStream* log);
   void         log_task_queued();
   void         log_task_start(CompileLog* log);
   void         log_task_done(CompileLog* log);
 
-  void         set_failure_reason(const char* reason) {
+  void         set_failure_reason(const char* reason, bool on_C_heap = false) {
     _failure_reason = reason;
+    _failure_reason_on_C_heap = on_C_heap;
   }
 
   bool         check_break_at_flags();
 
   static void print_inlining_inner(outputStream* st, ciMethod* method, int inline_level, int bci, const char* msg = NULL);
< prev index next >