author | Jeff Walden <jwalden@mit.edu> |
Wed, 16 May 2018 21:00:59 -0700 (2018-05-17) | |
changeset 418918 | 1df7d4219611559f5289e869e51c28c0b42a2853 |
parent 418917 | 6ceb0b9f6c804911e1d769307b429fc72d1beef0 |
child 418919 | 7c45180cea08bafea969777bbfe28ff2c0634fb8 |
push id | 103419 |
push user | jwalden@mit.edu |
push date | Fri, 18 May 2018 19:33:51 +0000 (2018-05-18) |
treeherder | mozilla-inbound@7658d2d1e0d7 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | jandem |
bugs | 1461556 |
milestone | 62.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/js/src/gc/Statistics.cpp +++ b/js/src/gc/Statistics.cpp @@ -3,17 +3,16 @@ * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "gc/Statistics.h" #include "mozilla/ArrayUtils.h" #include "mozilla/DebugOnly.h" -#include "mozilla/PodOperations.h" #include "mozilla/Sprintf.h" #include "mozilla/TimeStamp.h" #include <ctype.h> #include <stdarg.h> #include <stdio.h> #include <type_traits> @@ -28,17 +27,16 @@ #include "vm/Time.h" using namespace js; using namespace js::gc; using namespace js::gcstats; using mozilla::DebugOnly; using mozilla::EnumeratedArray; -using mozilla::PodZero; using mozilla::TimeStamp; using mozilla::TimeDuration; /* * If this fails, then you can either delete this assertion and allow all * larger-numbered reasons to pile up in the last telemetry bucket, or switch * to GC_REASON_3 and bump the max value. */ @@ -1113,23 +1111,29 @@ Statistics::endSlice() // Do this after the slice callback since it uses these values. if (last) { for (auto& count : counts) count = 0; // Clear the timers at the end of a GC, preserving the data for PhaseKind::MUTATOR. auto mutatorStartTime = phaseStartTimes[Phase::MUTATOR]; auto mutatorTime = phaseTimes[Phase::MUTATOR]; + for (mozilla::TimeStamp& t : phaseStartTimes) t = TimeStamp(); #ifdef DEBUG for (mozilla::TimeStamp& t : phaseEndTimes) t = TimeStamp(); #endif - PodZero(&phaseTimes); + + for (TimeDuration& duration : phaseTimes) { + duration = TimeDuration(); + MOZ_ASSERT(duration.IsZero()); + } + phaseStartTimes[Phase::MUTATOR] = mutatorStartTime; phaseTimes[Phase::MUTATOR] = mutatorTime; } aborted = false; } void