< prev index next >

src/hotspot/share/runtime/perfData.hpp

Print this page

        

@@ -914,26 +914,26 @@
     // pointer to thread-local or global recursion counter variable
     int* _recursion_counter;
 
   public:
     inline PerfTraceTime(PerfLongCounter* timerp) : _timerp(timerp), _recursion_counter(NULL) {
-      if (!UsePerfData) return;
+      if (!UsePerfData || (_timerp == NULL)) return;
       _t.start();
     }
 
     inline PerfTraceTime(PerfLongCounter* timerp, int* recursion_counter) : _timerp(timerp), _recursion_counter(recursion_counter) {
-      if (!UsePerfData || (_recursion_counter != NULL &&
-                           (*_recursion_counter)++ > 0)) return;
+      if (!UsePerfData || (_timerp == NULL) ||
+          (_recursion_counter != NULL && (*_recursion_counter)++ > 0)) return;
       _t.start();
     }
 
-    inline void suspend() { if (!UsePerfData) return; _t.stop(); }
-    inline void resume() { if (!UsePerfData) return; _t.start(); }
+    inline void suspend() { if (!UsePerfData || (_timerp == NULL)) return; _t.stop(); }
+    inline void resume() { if (!UsePerfData || (_timerp == NULL)) return; _t.start(); }
 
     inline ~PerfTraceTime() {
-      if (!UsePerfData || (_recursion_counter != NULL &&
-                           --(*_recursion_counter) > 0)) return;
+      if (!UsePerfData || (_timerp == NULL) ||
+          (_recursion_counter != NULL && --(*_recursion_counter) > 0)) return;
       _t.stop();
       _timerp->inc(_t.ticks());
     }
 };
 

@@ -961,16 +961,16 @@
   protected:
     PerfLongCounter* _eventp;
 
   public:
     inline PerfTraceTimedEvent(PerfLongCounter* timerp, PerfLongCounter* eventp): PerfTraceTime(timerp), _eventp(eventp) {
-      if (!UsePerfData) return;
+      if (!UsePerfData || (timerp == NULL)) return;
       _eventp->inc();
     }
 
     inline PerfTraceTimedEvent(PerfLongCounter* timerp, PerfLongCounter* eventp, int* recursion_counter): PerfTraceTime(timerp, recursion_counter), _eventp(eventp) {
-      if (!UsePerfData) return;
+      if (!UsePerfData || (timerp == NULL)) return;
       _eventp->inc();
     }
 };
 
 #endif // SHARE_VM_RUNTIME_PERFDATA_HPP
< prev index next >