nsIFrame* frame = mFirstChild; PRInt32 n = mChildCount; while (--n >= 0) { frame->List(out, aIndent + 1, aFilter); frame->GetNextSibling(frame);
PRInt32 i; PRBool outputMe = (PRBool)((nsnull==aFilter) || ((PR_TRUE==aFilter->OutputTag(&tagString)) && (!IsPseudoFrame()))); if (PR_TRUE==outputMe) {  for (i = aIndent; --i >= 0; ) fputs("  ", out);   ListTag(out); nsIView* view; GetView(view); if (nsnull != view) { fprintf(out, " [view=%p]", view); }   if (nsnull != mPrevInFlow) { fprintf(out, "prev-in-flow=%p ", mPrevInFlow); } if (nsnull != mNextInFlow) { fprintf(out, "next-in-flow=%p ", mNextInFlow); }   out << mRect; if (0 != mState) { fprintf(out, " [state=%08x]", mState); }
LineData::List(FILE* out, PRInt32 aIndent, nsIListFilter *aFilter,               PRBool aOutputMe) const{  PRInt32 i;  if (aOutputMe) {    for (i = aIndent; --i >= 0; ) fputs("  ", out);    char cbuf[100];    fprintf(out, "line %p: count=%d state=%s {%d,%d,%d,%d} ibm=%d obm=%d <\n",            this, mChildCount, StateToString(cbuf, sizeof(cbuf)),            mBounds.x, mBounds.y, mBounds.width, mBounds.height,            mInnerBottomMargin, mOuterBottomMargin);  }  nsIFrame* frame = mFirstChild;  PRInt32 n = mChildCount;  while (--n >= 0) {    frame->List(out, aIndent + 1, aFilter);    frame->GetNextSibling(frame);  }  if (aOutputMe) {    for (i = aIndent; --i >= 0; ) fputs("  ", out);    if (nsnull != mFloaters) {      fputs("> bcl-floaters=<", out);      ListFloaters(out, mFloaters);    }    fputs(">\n", out);  }}