NS_ASSERTION(0 != aLine->mChildCount, "bad push");
NS_ASSERTION(0 != aLine->ChildCount(), "bad push");
nsBlockFrame::SplitLine(nsBlockReflowState& aState,                        LineData* aLine,                        nsIFrame* aFrame,                        PRBool aLineWasComplete){  PRInt32 pushCount = aLine->mChildCount -    aState.mInlineReflow->GetCurrentFrameNum();  NS_FRAME_TRACE(NS_FRAME_TRACE_CALLS,     ("nsBlockFrame::SplitLine: pushing %d frames",      pushCount));  if (0 != pushCount) {    NS_ASSERTION(nsnull != aFrame, "whoops");    LineData* to = aLine->mNext;    if (nsnull != to) {      // Only push into the next line if it's empty; otherwise we can      // end up pushing a frame which is continued into the same frame      // as it's continuation. This causes all sorts of bad side      // effects so we don't allow it.      if (to->mChildCount != 0) {        LineData* insertedLine = new LineData(aFrame, pushCount, 0);        aLine->mNext = insertedLine;        insertedLine->mNext = to;        to = insertedLine;      } else {        to->mFirstChild = aFrame;        to->mChildCount += pushCount;      }    } else {      to = new LineData(aFrame, pushCount, 0);      aLine->mNext = to;    }    if (nsnull == to) {      return NS_ERROR_OUT_OF_MEMORY;    }    to->SetLastContentIsComplete(aLineWasComplete);    aLine->mChildCount -= pushCount;#ifdef NS_DEBUG    if (GetVerifyTreeEnable()) {      aLine->Verify();    }#endif    NS_ASSERTION(0 != aLine->mChildCount, "bad push");    // Let inline reflow know that some frames are no longer part of    // its state.    aState.mInlineReflow->ChangeFrameCount(aLine->mChildCount);  }  return NS_OK;}