rv = ReflowFrames(aPresContext, aReflowState, irs, aMetrics, aStatus);     NS_FRAME_SET_TRUNCATION(aStatus, aReflowState, aMetrics);
nsInlineFrame::Reflow(nsPresContext*          aPresContext,                      nsHTMLReflowMetrics&     aMetrics,                      const nsHTMLReflowState& aReflowState,                      nsReflowStatus&          aStatus){  DO_GLOBAL_REFLOW_COUNT("nsInlineFrame", aReflowState.reason);  DISPLAY_REFLOW(aPresContext, this, aReflowState, aMetrics, aStatus);  if (nsnull == aReflowState.mLineLayout) {    return NS_ERROR_INVALID_ARG;  }  PRBool  lazilySetParentPointer = PR_FALSE;  // Check for an overflow list with our prev-in-flow  nsInlineFrame* prevInFlow = (nsInlineFrame*)mPrevInFlow;  if (nsnull != prevInFlow) {    nsIFrame* prevOverflowFrames = prevInFlow->GetOverflowFrames(aPresContext, PR_TRUE);    if (prevOverflowFrames) {      // When pushing and pulling frames we need to check for whether any      // views need to be reparented.      nsHTMLContainerFrame::ReparentFrameViewList(aPresContext, prevOverflowFrames,                                                  prevInFlow, this);      if (aReflowState.reason == eReflowReason_Initial) {        // If it's the initial reflow, then our child list must be empty, so        // just set the child list rather than calling InsertFrame(). This avoids        // having to get the last child frame in the list.        // Note that we don't set the parent pointer for the new frames. Instead wait        // to do this until we actually reflow the frame. If the overflow list contains        // thousands of frames this is a big performance issue (see bug #5588)        NS_ASSERTION(mFrames.IsEmpty(), "child list is not empty for initial reflow");        mFrames.SetFrames(prevOverflowFrames);        lazilySetParentPointer = PR_TRUE;      } else {        // Insert the new frames at the beginning of the child list        // and set their parent pointer        mFrames.InsertFrames(this, nsnull, prevOverflowFrames);      }    }  }  // It's also possible that we have an overflow list for ourselves#ifdef DEBUG  if (aReflowState.reason == eReflowReason_Initial) {    // If it's our initial reflow, then we should not have an overflow list.    // However, add an assertion in case we get reflowed more than once with    // the initial reflow reason    nsIFrame* overflowFrames = GetOverflowFrames(aPresContext, PR_FALSE);    NS_ASSERTION(!overflowFrames, "overflow list is not empty for initial reflow");  }#endif  if (aReflowState.reason != eReflowReason_Initial) {    nsIFrame* overflowFrames = GetOverflowFrames(aPresContext, PR_TRUE);    if (overflowFrames) {      NS_ASSERTION(mFrames.NotEmpty(), "overflow list w/o frames");      // Because we lazily set the parent pointer of child frames we get from      // our prev-in-flow's overflow list, it's possible that we have not set      // the parent pointer for these frames. Check the first frame to see, and      // if we haven't set the parent pointer then set it now      mFrames.AppendFrames(overflowFrames->GetParent() == this ? nsnull : this, overflowFrames);    }  }  if (IsFrameTreeTooDeep(aReflowState, aMetrics)) {#ifdef DEBUG_kipp    {      extern char* nsPresShell_ReflowStackPointerTop;      char marker;      char* newsp = (char*) &marker;      printf("XXX: frame tree is too deep; approx stack size = %d\n",             nsPresShell_ReflowStackPointerTop - newsp);    }#endif    aStatus = NS_FRAME_COMPLETE;    return NS_OK;  }  // Set our own reflow state (additional state above and beyond  // aReflowState)  InlineReflowState irs;  irs.mPrevFrame = nsnull;  irs.mNextInFlow = (nsInlineFrame*) mNextInFlow;  irs.mSetParentPointer = lazilySetParentPointer;  nsresult rv;  if (mFrames.IsEmpty()) {    // Try to pull over one frame before starting so that we know    // whether we have an anonymous block or not.    PRBool complete;    (void) PullOneFrame(aPresContext, irs, &complete);  }  rv = ReflowFrames(aPresContext, aReflowState, irs, aMetrics, aStatus);    // Note: the line layout code will properly compute our  // NS_FRAME_OUTSIDE_CHILDREN state for us.  NS_FRAME_SET_TRUNCATION(aStatus, aReflowState, aMetrics);  return rv;}