PerFrameData* pfd = mFrameFreeList; while (nsnull != pfd) { PerFrameData* nextFrame = pfd->mNext; if ((pfd < &mFrameDataBuf[0]) || (pfd >= &mFrameDataBuf[NS_LINELAYOUT_NUM_FRAMES])) { delete pfd; } pfd = nextFrame; }
PL_FreeArenaPool(&mArena); PL_FinishArenaPool(&mArena);
nsLineLayout::~nsLineLayout(){  MOZ_COUNT_DTOR(nsLineLayout);  NS_ASSERTION(nsnull == mRootSpan, "bad line-layout user");  // Free up all of the per-span-data items that were allocated on the heap  PerSpanData* psd = mSpanFreeList;  while (nsnull != psd) {    PerSpanData* nextSpan = psd->mNextFreeSpan;    if ((psd < &mSpanDataBuf[0]) ||        (psd >= &mSpanDataBuf[NS_LINELAYOUT_NUM_SPANS])) {      delete psd;    }    psd = nextSpan;  }  // Free up all of the per-frame-data items that were allocated on the heap  PerFrameData* pfd = mFrameFreeList;  while (nsnull != pfd) {    PerFrameData* nextFrame = pfd->mNext;    if ((pfd < &mFrameDataBuf[0]) ||        (pfd >= &mFrameDataBuf[NS_LINELAYOUT_NUM_FRAMES])) {      delete pfd;    }    pfd = nextFrame;  }}