if (IsFrameSpecial(aFrame)) { nsIFrame* specialSibling; GetSpecialSibling(aFrameManager, aFrame, &specialSibling); DeletingFrameSubtree(aPresContext, aPresShell, aFrameManager, specialSibling); }
DeletingFrameSubtree(nsIPresContext*  aPresContext,                     nsIPresShell*    aPresShell,                     nsIFrameManager* aFrameManager,                     nsIFrame*        aFrame){  // If there's no frame manager it's probably because the pres shell is  // being destroyed  if (aFrameManager) {    while (aFrame) {      DoDeletingFrameSubtree(aPresContext, aPresShell, aFrameManager,                             aFrame, aFrame);      // If it's split, then get the continuing frame. Note that we only do      // this for the top-most frame being deleted. Don't do it if we're      // recursing over a subtree, because those continuing frames should be      // found as part of the walk over the top-most frame's continuing frames.      // Walking them again will make this an N^2/2 algorithm      aFrame->GetNextInFlow(&aFrame);    }  }  return NS_OK;}