nsGIFDecoder2* decoder = NS_STATIC_CAST(nsGIFDecoder2*, aClientData);     if (!decoder->mImageFrame) HaveDecodedRow(aClientData,nsnull,0,0,0,0,0,0);      decoder->mImageContainer->EndFrameDecode(aFrameNumber, aDelayTimeout);  if (decoder->mObserver && decoder->mImageFrame) { decoder->mImageFrame->SetFrameDisposalMethod(aDisposal);  decoder->FlushImageData();  if (aFrameNumber == 1) {    PRInt32 imgHeight; PRInt32 realFrameHeight = decoder->mGIFStruct->height + decoder->mGIFStruct->y_offset;  decoder->mImageContainer->GetHeight(&imgHeight); if (imgHeight > realFrameHeight) { PRInt32 imgWidth; decoder->mImageContainer->GetWidth(&imgWidth);  nsRect r(0, realFrameHeight, imgWidth, imgHeight - realFrameHeight); decoder->mObserver->OnDataAvailable(nsnull, nsnull, decoder->mImageFrame, &r); } }  decoder->mCurrentRow = decoder->mLastFlushedRow = -1; decoder->mCurrentPass = decoder->mLastFlushedPass = 0;  decoder->mObserver->OnStopFrame(nsnull, nsnull, decoder->mImageFrame); }  decoder->mImageFrame = nsnull; decoder->mGIFStruct->local_colormap = nsnull; decoder->mGIFStruct->is_transparent = PR_FALSE;
int EndImageFrame(){  return 0;}