--- old/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-12-10 15:32:31.040117295 +0100 +++ new/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-12-10 15:32:30.928121063 +0100 @@ -308,7 +308,7 @@ inline ParScanThreadState& thread_state(int i); - void trace_promotion_failed(YoungGCTracer& gc_tracer); + void trace_promotion_failed(const YoungGCTracer* gc_tracer); void reset(int active_workers, bool promotion_failed); void flush(); @@ -357,10 +357,10 @@ return ((ParScanThreadState*)_data)[i]; } -void ParScanThreadStateSet::trace_promotion_failed(YoungGCTracer& gc_tracer) { +void ParScanThreadStateSet::trace_promotion_failed(const YoungGCTracer* gc_tracer) { for (int i = 0; i < length(); ++i) { if (thread_state(i).promotion_failed()) { - gc_tracer.report_promotion_failed(thread_state(i).promotion_failed_info()); + gc_tracer->report_promotion_failed(thread_state(i).promotion_failed_info()); thread_state(i).promotion_failed_info().reset(); } } @@ -899,7 +899,7 @@ _next_gen->promotion_failure_occurred(); // Trace promotion failure in the parallel GC threads - thread_state_set.trace_promotion_failed(_gc_tracer); + thread_state_set.trace_promotion_failed(gc_tracer()); // Single threaded code may have reported promotion failure to the global state if (_promotion_failed_info.has_failed()) { _gc_tracer.report_promotion_failed(_promotion_failed_info); @@ -942,7 +942,7 @@ assert(to()->is_empty(), "Else not collection_attempt_is_safe"); _gc_tracer.report_gc_start(gch->gc_cause(), _gc_timer->gc_start()); - gch->trace_heap_before_gc(&_gc_tracer); + gch->trace_heap_before_gc(gc_tracer()); init_assuming_no_promotion_failure(); @@ -993,7 +993,7 @@ // Trace and reset failed promotion info. if (promotion_failed()) { - thread_state_set.trace_promotion_failed(_gc_tracer); + thread_state_set.trace_promotion_failed(gc_tracer()); } // Process (weak) reference objects found during scavenge. @@ -1087,7 +1087,7 @@ } rp->verify_no_references_recorded(); - gch->trace_heap_after_gc(&_gc_tracer); + gch->trace_heap_after_gc(gc_tracer()); _gc_tracer.report_tenuring_threshold(tenuring_threshold()); _gc_timer->register_gc_end(); --- old/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2014-12-10 15:32:31.652096708 +0100 +++ new/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2014-12-10 15:32:31.544100341 +0100 @@ -663,7 +663,7 @@ } } -void ParallelScavengeHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) { +void ParallelScavengeHeap::trace_heap(GCWhen::Type when, const GCTracer* gc_tracer) { const PSHeapSummary& heap_summary = create_ps_heap_summary(); gc_tracer->report_gc_heap_summary(when, heap_summary); --- old/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp 2014-12-10 15:32:32.212077870 +0100 +++ new/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp 2014-12-10 15:32:32.112081234 +0100 @@ -64,7 +64,7 @@ // The task manager static GCTaskManager* _gc_task_manager; - void trace_heap(GCWhen::Type when, GCTracer* tracer); + void trace_heap(GCWhen::Type when, const GCTracer* tracer); protected: static inline size_t total_invocations(); --- old/src/share/vm/gc_implementation/shared/gcTrace.cpp 2014-12-10 15:32:32.780058762 +0100 +++ new/src/share/vm/gc_implementation/shared/gcTrace.cpp 2014-12-10 15:32:32.692061722 +0100 @@ -162,7 +162,7 @@ _tenuring_threshold = UNSET_TENURING_THRESHOLD; } -void YoungGCTracer::report_promotion_failed(const PromotionFailedInfo& pf_info) { +void YoungGCTracer::report_promotion_failed(const PromotionFailedInfo& pf_info) const { assert_set_gc_id(); send_promotion_failed_event(pf_info); --- old/src/share/vm/gc_implementation/shared/gcTrace.hpp 2014-12-10 15:32:33.268042346 +0100 +++ new/src/share/vm/gc_implementation/shared/gcTrace.hpp 2014-12-10 15:32:33.172045575 +0100 @@ -153,7 +153,7 @@ virtual void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions); public: - void report_promotion_failed(const PromotionFailedInfo& pf_info); + void report_promotion_failed(const PromotionFailedInfo& pf_info) const; void report_tenuring_threshold(const uint tenuring_threshold); /* --- old/src/share/vm/gc_interface/collectedHeap.cpp 2014-12-10 15:32:33.768025526 +0100 +++ new/src/share/vm/gc_interface/collectedHeap.cpp 2014-12-10 15:32:33.676028620 +0100 @@ -132,7 +132,7 @@ assert_locked_or_safepoint(CodeCache_lock); } -void CollectedHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) { +void CollectedHeap::trace_heap(GCWhen::Type when, const GCTracer* gc_tracer) { const GCHeapSummary& heap_summary = create_heap_summary(); gc_tracer->report_gc_heap_summary(when, heap_summary); @@ -140,11 +140,11 @@ gc_tracer->report_metaspace_summary(when, metaspace_summary); } -void CollectedHeap::trace_heap_before_gc(GCTracer* gc_tracer) { +void CollectedHeap::trace_heap_before_gc(const GCTracer* gc_tracer) { trace_heap(GCWhen::BeforeGC, gc_tracer); } -void CollectedHeap::trace_heap_after_gc(GCTracer* gc_tracer) { +void CollectedHeap::trace_heap_after_gc(const GCTracer* gc_tracer) { trace_heap(GCWhen::AfterGC, gc_tracer); } --- old/src/share/vm/gc_interface/collectedHeap.hpp 2014-12-10 15:32:34.312007225 +0100 +++ new/src/share/vm/gc_interface/collectedHeap.hpp 2014-12-10 15:32:34.196011128 +0100 @@ -175,7 +175,7 @@ // Fill with a single object (either an int array or a java.lang.Object). static inline void fill_with_object_impl(HeapWord* start, size_t words, bool zap = true); - virtual void trace_heap(GCWhen::Type when, GCTracer* tracer); + virtual void trace_heap(GCWhen::Type when, const GCTracer* tracer); // Verification functions virtual void check_for_bad_heap_word_value(HeapWord* addr, size_t size) @@ -606,8 +606,8 @@ virtual void register_nmethod(nmethod* nm); virtual void unregister_nmethod(nmethod* nm); - void trace_heap_before_gc(GCTracer* gc_tracer); - void trace_heap_after_gc(GCTracer* gc_tracer); + void trace_heap_before_gc(const GCTracer* gc_tracer); + void trace_heap_after_gc(const GCTracer* gc_tracer); // Heap verification virtual void verify(bool silent, VerifyOption option) = 0;