nsresult rv = NS_OK; PRBool stopPulling; aFrameResult = nsnull;   while (nsnull != aLine->mNext) { rv = PullFrame(aState, aLine, &aLine->mNext, PR_FALSE, aDamageDeletedLines, aFrameResult, stopPulling); if (NS_FAILED(rv) || stopPulling) { return rv; }
LineData* fromLine = *aFromList; NS_ASSERTION(nsnull != fromLine, "bad line to pull from"); if (0 == fromLine->mChildCount) {    *aFromList = fromLine->mNext; NS_ASSERTION(nsnull == fromLine->mFirstChild, "bad empty line"); fromLine->mNext = aState.mFreeList; aState.mFreeList = fromLine; return PR_TRUE;
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;}