NS_METHOD nsTableFrame::IncrementalReflow(nsIPresContext* aPresContext, nsHTMLReflowMetrics& aDesiredSize, const nsHTMLReflowState& aReflowState, nsReflowStatus& aStatus)
nsTableFrame::IncrementalReflow(nsIPresContext*          aPresContext, const nsHTMLReflowState& aReflowState, nsReflowStatus&          aStatus)
NS_METHOD nsTableFrame::IncrementalReflow(nsIPresContext* aPresContext,                                          nsHTMLReflowMetrics& aDesiredSize,                                          const nsHTMLReflowState& aReflowState,                                          nsReflowStatus& aStatus){  nsresult  rv = NS_OK;  // Constrain our reflow width to the computed table width. Note: this is  // based on the width of the first-in-flow  nsHTMLReflowState reflowState(aReflowState);  PRInt32 pass1Width = mRect.width;  if (mPrevInFlow) {    nsTableFrame* table = (nsTableFrame*)GetFirstInFlow();    pass1Width = table->mRect.width;  }  reflowState.availableWidth = pass1Width;  // get border + padding  nsMargin borderPadding;  GetTableBorder (borderPadding);  borderPadding += aReflowState.mComputedPadding;  InnerTableReflowState state(aPresContext, reflowState, borderPadding);  // determine if this frame is the target or not  nsIFrame *target=nsnull;  rv = reflowState.reflowCommand->GetTarget(target);  if ((PR_TRUE==NS_SUCCEEDED(rv)) && (nsnull!=target))  {    // this is the target if target is either this or the outer table frame containing this inner frame    nsIFrame *outerTableFrame=nsnull;    GetParent(&outerTableFrame);    if ((this==target) || (outerTableFrame==target))      rv = IR_TargetIsMe(aPresContext, aDesiredSize, state, aStatus);    else    {      // Get the next frame in the reflow chain      nsIFrame* nextFrame;      reflowState.reflowCommand->GetNext(nextFrame);      NS_ASSERTION(nextFrame, "next frame in reflow command is null");       // Recover our reflow state      rv = IR_TargetIsChild(aPresContext, aDesiredSize, state, aStatus, nextFrame);    }  }  return rv;}