From feb635048a76f07437e3ae0168b384eb5220575d Mon Sep 17 00:00:00 2001 From: Eric Rahm Date: Wed, 10 Jun 2015 21:31:31 -0700 Subject: [PATCH] Bug 1171722 - Part 1: Add gcreason to GCSliceCallback. r=fitzgen --- js/public/GCAPI.h | 5 +++-- js/src/gc/Statistics.cpp | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/js/public/GCAPI.h b/js/public/GCAPI.h index 3482048d9098..dd5302d32590 100644 --- a/js/public/GCAPI.h +++ b/js/public/GCAPI.h @@ -332,9 +332,10 @@ enum GCProgress { struct JS_PUBLIC_API(GCDescription) { bool isCompartment_; JSGCInvocationKind invocationKind_; + gcreason::Reason reason_; - GCDescription(bool isCompartment, JSGCInvocationKind kind) - : isCompartment_(isCompartment), invocationKind_(kind) {} + GCDescription(bool isCompartment, JSGCInvocationKind kind, gcreason::Reason reason) + : isCompartment_(isCompartment), invocationKind_(kind), reason_(reason) {} char16_t* formatSliceMessage(JSRuntime* rt) const; char16_t* formatSummaryMessage(JSRuntime* rt) const; diff --git a/js/src/gc/Statistics.cpp b/js/src/gc/Statistics.cpp index 741e171d018a..314fac5c7479 100644 --- a/js/src/gc/Statistics.cpp +++ b/js/src/gc/Statistics.cpp @@ -945,7 +945,7 @@ Statistics::beginSlice(const ZoneGCStats& zoneStats, JSGCInvocationKind gckind, bool wasFullGC = zoneStats.isCollectingAllZones(); if (sliceCallback) (*sliceCallback)(runtime, first ? JS::GC_CYCLE_BEGIN : JS::GC_SLICE_BEGIN, - JS::GCDescription(!wasFullGC, gckind)); + JS::GCDescription(!wasFullGC, gckind, reason)); } } @@ -977,7 +977,7 @@ Statistics::endSlice() bool wasFullGC = zoneStats.isCollectingAllZones(); if (sliceCallback) (*sliceCallback)(runtime, last ? JS::GC_CYCLE_END : JS::GC_SLICE_END, - JS::GCDescription(!wasFullGC, gckind)); + JS::GCDescription(!wasFullGC, gckind, slices.back().reason)); } /* Do this after the slice callback since it uses these values. */