| 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*)
|
| +{
|
| +}
|
| +
|
| }
|
|
|