nsBlockFrame* nextInFlow = aState.mNextInFlow; while (nsnull != nextInFlow) { nsLineBox* line = nextInFlow->mLines; if (nsnull == line) { nextInFlow = (nsBlockFrame*) nextInFlow->mNextInFlow; aState.mNextInFlow = nextInFlow; continue;
if ((0 != aLine->mChildCount) && fromLine->IsBlock()) { aReflowResult = NS_INLINE_LINE_BREAK_BEFORE(); return PR_FALSE; }   nsIFrame* frame = fromLine->mFirstChild; if (0 == aLine->mChildCount++) { aLine->mFirstChild = frame; aLine->SetIsBlock(fromLine->IsBlock()); #ifdef NS_DEBUG const nsStyleDisplay* display; frame->GetStyleData(eStyleStruct_Display, (const nsStyleStruct*&) display); const nsStylePosition* position; frame->GetStyleData(eStyleStruct_Position, (const nsStyleStruct*&) position); PRBool isBlock = nsLineLayout::TreatFrameAsBlock(display, position); NS_ASSERTION(isBlock == aLine->IsBlock(), "bad line isBlock"); #endif } if (0 != --fromLine->mChildCount) { frame->GetNextSibling(fromLine->mFirstChild); } else {  *aFromList = fromLine->mNext; fromLine->mFirstChild = nsnull; fromLine->mNext = aState.mFreeList; aState.mFreeList = fromLine; }   if (aUpdateGeometricParent) { nsIFrame* geometricParent; nsIFrame* contentParent; frame->GetGeometricParent(geometricParent); frame->GetContentParent(contentParent); if (contentParent == geometricParent) { frame->SetContentParent(this);
nsBlockFrame::PullFrame(nsBlockReflowState& aState,                        nsLineBox* aLine,                        PRBool aDamageDeletedLines,                        nsIFrame*& aFrameResult){  nsresult rv = NS_OK;  PRBool stopPulling;  aFrameResult = nsnull;  // First check our remaining lines  while (nsnull != aLine->mNext) {    rv = PullFrame(aState, aLine, &aLine->mNext, PR_FALSE, aDamageDeletedLines,                   aFrameResult, stopPulling);    if (NS_FAILED(rv) || stopPulling) {      return rv;    }  }  // Pull frames from the next-in-flow(s) until we can't  nsBlockFrame* nextInFlow = aState.mNextInFlow;  while (nsnull != nextInFlow) {    nsLineBox* line = nextInFlow->mLines;    if (nsnull == line) {      nextInFlow = (nsBlockFrame*) nextInFlow->mNextInFlow;      aState.mNextInFlow = nextInFlow;      continue;    }    rv = PullFrame(aState, aLine, &nextInFlow->mLines, PR_TRUE, aDamageDeletedLines,                   aFrameResult, stopPulling);    if (NS_FAILED(rv) || stopPulling) {      return rv;    }  }  return rv;}