Index: Source/core/frame/ImageBitmap.cpp |
diff --git a/Source/core/frame/ImageBitmap.cpp b/Source/core/frame/ImageBitmap.cpp |
index 53567bd01655417a20ddcb3b9c280d32ba29d7a1..bd54d8146e165ff0537dc1ee384464b0bc180588 100644 |
--- a/Source/core/frame/ImageBitmap.cpp |
+++ b/Source/core/frame/ImageBitmap.cpp |
@@ -145,44 +145,51 @@ ImageBitmap::ImageBitmap(Image* image, const IntRect& cropRect) |
ImageBitmap::~ImageBitmap() |
{ |
- if (m_imageElement) |
+ detach(); |
+} |
+ |
+void ImageBitmap::detach() |
+{ |
+ if (m_imageElement) { |
m_imageElement->removeClient(this); |
+ m_imageElement = nullptr; |
+ } |
} |
-PassRefPtr<ImageBitmap> ImageBitmap::create(HTMLImageElement* image, const IntRect& cropRect) |
+PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(HTMLImageElement* image, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- return adoptRef(new ImageBitmap(image, normalizedCropRect)); |
+ return adoptRefWillBeNoop(new ImageBitmap(image, normalizedCropRect)); |
} |
-PassRefPtr<ImageBitmap> ImageBitmap::create(HTMLVideoElement* video, const IntRect& cropRect) |
+PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(HTMLVideoElement* video, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- return adoptRef(new ImageBitmap(video, normalizedCropRect)); |
+ return adoptRefWillBeNoop(new ImageBitmap(video, normalizedCropRect)); |
} |
-PassRefPtr<ImageBitmap> ImageBitmap::create(HTMLCanvasElement* canvas, const IntRect& cropRect) |
+PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(HTMLCanvasElement* canvas, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- return adoptRef(new ImageBitmap(canvas, normalizedCropRect)); |
+ return adoptRefWillBeNoop(new ImageBitmap(canvas, normalizedCropRect)); |
} |
-PassRefPtr<ImageBitmap> ImageBitmap::create(ImageData* data, const IntRect& cropRect) |
+PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(ImageData* data, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- return adoptRef(new ImageBitmap(data, normalizedCropRect)); |
+ return adoptRefWillBeNoop(new ImageBitmap(data, normalizedCropRect)); |
} |
-PassRefPtr<ImageBitmap> ImageBitmap::create(ImageBitmap* bitmap, const IntRect& cropRect) |
+PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(ImageBitmap* bitmap, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- return adoptRef(new ImageBitmap(bitmap, normalizedCropRect)); |
+ return adoptRefWillBeNoop(new ImageBitmap(bitmap, normalizedCropRect)); |
} |
-PassRefPtr<ImageBitmap> ImageBitmap::create(Image* image, const IntRect& cropRect) |
+PassRefPtrWillBeRawPtr<ImageBitmap> ImageBitmap::create(Image* image, const IntRect& cropRect) |
{ |
IntRect normalizedCropRect = normalizeRect(cropRect); |
- return adoptRef(new ImageBitmap(image, normalizedCropRect)); |
+ return adoptRefWillBeNoop(new ImageBitmap(image, normalizedCropRect)); |
} |
void ImageBitmap::notifyImageSourceChanged() |
@@ -200,4 +207,8 @@ PassRefPtr<Image> ImageBitmap::bitmapImage() const |
return m_bitmap; |
} |
+void ImageBitmap::trace(Visitor*) |
+{ |
+} |
+ |
} |