NS_IMETHODIMP imgRequest::OnStopFrame(imgIRequest *request, gfxIImageFrame *frame)
void imgRequestProxy::OnStopFrame(gfxIImageFrame *frame)
NS_IMETHODIMP imgRequest::OnStopFrame(imgIRequest *request,                                      gfxIImageFrame *frame){  NS_ASSERTION(frame, "imgRequest::OnStopFrame called with NULL frame");  if (!frame) return NS_ERROR_UNEXPECTED;  LOG_SCOPE(gImgLog, "imgRequest::OnStopFrame");  mImageStatus |= imgIRequest::STATUS_FRAME_COMPLETE;  if (mCacheEntry) {    PRUint32 cacheSize = 0;    mCacheEntry->GetDataSize(&cacheSize);    PRUint32 imageSize = 0;    PRUint32 alphaSize = 0;    frame->GetImageDataLength(&imageSize);    frame->GetAlphaDataLength(&alphaSize);    mCacheEntry->SetDataSize(cacheSize + imageSize + alphaSize);  }  PRInt32 count = mObservers.Count();  for (PRInt32 i = 0; i < count; i++) {    imgRequestProxy *proxy = NS_STATIC_CAST(imgRequestProxy*, mObservers[i]);    if (proxy) proxy->OnStopFrame(frame);    // If this assertion fires, it means that imgRequest notifications could    // be dropped!    NS_ASSERTION(count == mObservers.Count(),                  "The observer list changed while being iterated over!");  }  return NS_OK;}