The extra forget skippable logic should be moved out of PrepareForCycleCollectionSlice and into BeginCycleCollectionCallback. This will require passing the extra forget skippable count via gCCStats. This will fix the case where the browser is in the middle of an ICC, then nsJSContext::CycleCollectNow gets called with positive aExtraForgetSkippableCalls, which get triggered before the ICC is finished, and thus ignored. This will also let us turn the dynamic check in nsCycleCollector::ForgetSkippable that we're idle into an assert. I think this isn't pressing because we don't request extra forgetSkippable calls in normal circumstances, but it should be a nice cleanup.
Created attachment 8355024 [details] [diff] [review] Run forgetSkippable per CC not per slice. try run: https://tbpl.mozilla.org/?tree=Try&rev=b40db2b8506e
Attachment #8355024 - Flags: review?(bugs)
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla29
You need to log in before you can comment on or make changes to this bug.