if (mBits.mIsInvariantWidth) { result = PR_FALSE; } else if ((eReflowReason_Incremental == aReflowState.reason) && (NS_UNCONSTRAINEDSIZE == aReflowState.availableHeight)) {    result = !(IsFirstPassValid() && IsColumnWidthsValid());
if (eReflowReason_Resize == aReflowState.reason) { if (aReflowState.mFlags.mSpecialTableReflow && !NeedSpecialReflow()                   && !NeedToInitiateSpecialReflow()) { result = PR_FALSE; } } else if ((eReflowReason_Incremental == aReflowState.reason) && (NS_UNCONSTRAINEDSIZE == aReflowState.availableHeight)) {   #ifndef TABLE_REFLOW_COALESCING_OFF nsIFrame* reflowTarget; aReflowState.reflowCommand->GetTarget(reflowTarget); nsIReflowCommand::ReflowType reflowType; aReflowState.reflowCommand->GetType(reflowType); if (reflowType == nsIReflowCommand::Timeout) { result = PR_FALSE; if (this == reflowTarget) { if (mNumDescendantTimeoutReflowsPending <= 0) {  result = NeedStrategyInit() || NeedStrategyBalance(); } } else if ((mNumDescendantTimeoutReflowsPending <= 0) && !RequestedTimeoutReflow()) {  result = NeedStrategyInit() || NeedStrategyBalance(); } } else { if ((mNumDescendantTimeoutReflowsPending <= 0) && !RequestedTimeoutReflow() && (mNumDescendantReflowsPending <= 0)) {   result = NeedStrategyInit() || NeedStrategyBalance(); } else result = PR_FALSE; } #else result = NeedStrategyInit() || NeedStrategyBalance(); #endif
PRBool nsTableFrame::NeedsReflow(const nsHTMLReflowState& aReflowState){  PRBool result = PR_TRUE;  if (mBits.mIsInvariantWidth) {    result = PR_FALSE;  } else if ((eReflowReason_Incremental == aReflowState.reason) &&             (NS_UNCONSTRAINEDSIZE == aReflowState.availableHeight)) {    // If it's an incremental reflow and we're in galley mode, then only    // do a full reflow if we need to. We need to if the cell map is invalid,    // or the column info is invalid, or if we need to do a pass-1 reflow    result = !(IsFirstPassValid() && IsColumnWidthsValid());  }  return result;}