Title: [235171] trunk/Source/WebCore
- Revision
- 235171
- Author
- ms2...@igalia.com
- Date
- 2018-08-22 07:47:03 -0700 (Wed, 22 Aug 2018)
Log Message
[GTK] Never return an uninitialized ImageGStreamer object.
https://bugs.webkit.org/show_bug.cgi?id=188305
Reviewed by Philippe Normand.
The single caller was already checking for a null return value, so
make that check actually do something. Also remove the null-check on
the return value of image(), which asserted that it would never return
null.
Test: fast/canvas/canvas-createPattern-video-loading.html
* platform/graphics/gstreamer/ImageGStreamer.h:
(WebCore::ImageGStreamer::createImage): Return null if m_image wasn't created.
(WebCore::ImageGStreamer::image): Return a reference.
(WebCore::ImageGStreamer::rect): Always assert that m_image is present.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::paint): Update for new signature.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (235170 => 235171)
--- trunk/Source/WebCore/ChangeLog 2018-08-22 14:27:43 UTC (rev 235170)
+++ trunk/Source/WebCore/ChangeLog 2018-08-22 14:47:03 UTC (rev 235171)
@@ -1,3 +1,24 @@
+2018-08-22 Ms2ger <ms2...@igalia.com>
+
+ [GTK] Never return an uninitialized ImageGStreamer object.
+ https://bugs.webkit.org/show_bug.cgi?id=188305
+
+ Reviewed by Philippe Normand.
+
+ The single caller was already checking for a null return value, so
+ make that check actually do something. Also remove the null-check on
+ the return value of image(), which asserted that it would never return
+ null.
+
+ Test: fast/canvas/canvas-createPattern-video-loading.html
+
+ * platform/graphics/gstreamer/ImageGStreamer.h:
+ (WebCore::ImageGStreamer::createImage): Return null if m_image wasn't created.
+ (WebCore::ImageGStreamer::image): Return a reference.
+ (WebCore::ImageGStreamer::rect): Always assert that m_image is present.
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
+ (WebCore::MediaPlayerPrivateGStreamerBase::paint): Update for new signature.
+
2018-08-22 Zalan Bujtas <za...@apple.com>
Add changes missing from r234925.
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/ImageGStreamer.h (235170 => 235171)
--- trunk/Source/WebCore/platform/graphics/gstreamer/ImageGStreamer.h 2018-08-22 14:27:43 UTC (rev 235170)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/ImageGStreamer.h 2018-08-22 14:47:03 UTC (rev 235171)
@@ -38,24 +38,28 @@
class ImageGStreamer : public RefCounted<ImageGStreamer> {
public:
- static Ref<ImageGStreamer> createImage(GstSample* sample)
+ static RefPtr<ImageGStreamer> createImage(GstSample* sample)
{
- return adoptRef(*new ImageGStreamer(sample));
+ auto image = adoptRef(new ImageGStreamer(sample));
+ if (!image->m_image)
+ return nullptr;
+
+ return image;
}
~ImageGStreamer();
- BitmapImage* image()
+ BitmapImage& image()
{
ASSERT(m_image);
- return m_image.get();
+ return *m_image.get();
}
void setCropRect(FloatRect rect) { m_cropRect = rect; }
FloatRect rect()
{
+ ASSERT(m_image);
if (!m_cropRect.isEmpty())
return FloatRect(m_cropRect);
- ASSERT(m_image);
return FloatRect(0, 0, m_image->size().width(), m_image->size().height());
}
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp (235170 => 235171)
--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2018-08-22 14:27:43 UTC (rev 235170)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2018-08-22 14:47:03 UTC (rev 235171)
@@ -966,8 +966,7 @@
if (!gstImage)
return;
- if (Image* image = reinterpret_cast<Image*>(gstImage->image()))
- context.drawImage(*image, rect, gstImage->rect(), paintingOptions);
+ context.drawImage(gstImage->image(), rect, gstImage->rect(), paintingOptions);
}
#if USE(GSTREAMER_GL)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes