PRBool nsSMILTimeContainer::PopMilestoneElementsAtMilestone( const nsSMILMilestone& aMilestone, AnimElemArray& aMatchedElements) { if (mMilestoneEntries.IsEmpty()) return PR_FALSE; nsSMILTimeValue containerTime = ParentToContainerTime(aMilestone.mTime); if (!containerTime.IsDefinite()) return PR_FALSE; nsSMILMilestone containerMilestone(containerTime.GetMillis(), aMilestone.mIsEnd); NS_ABORT_IF_FALSE(mMilestoneEntries.Top().mMilestone >= containerMilestone, "Trying to pop off earliest times but we have earlier ones that were " "overlooked"); PRBool gotOne = PR_FALSE; while (!mMilestoneEntries.IsEmpty() && mMilestoneEntries.Top().mMilestone == containerMilestone) { aMatchedElements.AppendElement(mMilestoneEntries.Pop().mTimebase); gotOne = PR_TRUE; } return gotOne; }
bool nsSMILTimeContainer::PopMilestoneElementsAtMilestone( const nsSMILMilestone& aMilestone, AnimElemArray& aMatchedElements) { if (mMilestoneEntries.IsEmpty()) return false; nsSMILTimeValue containerTime = ParentToContainerTime(aMilestone.mTime); if (!containerTime.IsDefinite()) return false; nsSMILMilestone containerMilestone(containerTime.GetMillis(), aMilestone.mIsEnd); MOZ_ASSERT(mMilestoneEntries.Top().mMilestone >= containerMilestone, "Trying to pop off earliest times but we have earlier ones that " "were overlooked"); MOZ_RELEASE_ASSERT(!mHoldingEntries); bool gotOne = false; while (!mMilestoneEntries.IsEmpty() && mMilestoneEntries.Top().mMilestone == containerMilestone) { aMatchedElements.AppendElement(mMilestoneEntries.Pop().mTimebase); gotOne = true; } return gotOne; }