PerSpanData* psd = mSpanFreeList; while (nsnull != psd) { PerSpanData* nextSpan = psd->mNextFreeSpan; if ((psd < &mSpanDataBuf[0]) || (psd >= &mSpanDataBuf[NS_LINELAYOUT_NUM_SPANS])) { delete psd; } psd = nextSpan; }
delete mWordFrames;
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;  }}