Bug 1371438, investigate why assertion fails on Windows, r=bkelly

This commit is contained in:
Olli Pettay 2017-06-10 03:21:29 +03:00
parent 3d7f2966ec
commit c6e5adc488

View File

@ -599,7 +599,9 @@ TimerThread::FindNextFireTimeForCurrentThread(TimeStamp aDefault, uint32_t aSear
#ifdef DEBUG
TimeStamp firstTimeStamp;
Entry* initialFirstEntry = nullptr;
if (!mTimers.IsEmpty()) {
initialFirstEntry = mTimers[0].get();
firstTimeStamp = mTimers[0]->Timeout();
}
#endif
@ -643,7 +645,19 @@ TimerThread::FindNextFireTimeForCurrentThread(TimeStamp aDefault, uint32_t aSear
std::push_heap(mTimers.begin(), end, Entry::UniquePtrLessThan);
}
#ifdef DEBUG
if (!mTimers.IsEmpty()) {
if (firstTimeStamp != mTimers[0]->Timeout()) {
TimeStamp now = TimeStamp::Now();
printf_stderr("firstTimeStamp %f, mTimers[0]->Timeout() %f, "
"initialFirstTimer %p, current first %p\n",
(firstTimeStamp - now).ToMilliseconds(),
(mTimers[0]->Timeout() - now).ToMilliseconds(),
initialFirstEntry, mTimers[0].get());
}
}
MOZ_ASSERT_IF(!mTimers.IsEmpty(), firstTimeStamp == mTimers[0]->Timeout());
#endif
return timeStamp;
}