<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[191049] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/191049">191049</a></dd>
<dt>Author</dt> <dd>simon.fraser@apple.com</dd>
<dt>Date</dt> <dd>2015-10-14 11:10:32 -0700 (Wed, 14 Oct 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Change GraphicsContext image-drawing functions to take references
https://bugs.webkit.org/show_bug.cgi?id=150108

Reviewed by Tim Horton and Sam Weinig.

Change GraphicsContext::drawImage(), drawTiledImage(), drawImageBuffer(), clipToImageBuffer()
and isCompatibleWithBuffer() to take references, and adjust calling code, adding
null-checks where necessary.

Source/WebCore:

* css/CSSCrossfadeValue.cpp:
(WebCore::CSSCrossfadeValue::image):
* css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::compositeBuffer):
(WebCore::drawImageToContext):
(WebCore::CanvasRenderingContext2D::fullCanvasCompositedDrawImage):
(WebCore::CanvasRenderingContext2D::drawTextInternal):
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::texSubImage2D):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::texSubImage2D):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::drawImageIntoBuffer):
(WebCore::WebGLRenderingContextBase::texImage2D):
* html/canvas/WebGLRenderingContextBase.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::paintPanScrollIcon):
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::CrossfadeGeneratedImage):
(WebCore::drawCrossfadeSubimage):
(WebCore::CrossfadeGeneratedImage::drawCrossfade):
* platform/graphics/CrossfadeGeneratedImage.h:
* platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::drawPattern):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::clipToImageBuffer):
(WebCore::GraphicsContext::isCompatibleWithBuffer):
* platform/graphics/GraphicsContext.h:
* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::drawShadowBuffer):
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawLayerPieces):
(WebCore::ShadowBlur::endShadowLayer):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::draw):
* platform/graphics/filters/FEBlend.cpp:
(WebCore::FEBlend::platformApplySoftware):
* platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::platformApplySoftware):
* platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::platformApplySoftware):
* platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::platformApplySoftware):
* platform/graphics/filters/FEMerge.cpp:
(WebCore::FEMerge::platformApplySoftware):
* platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::platformApplySoftware):
* platform/graphics/filters/FETile.cpp:
(WebCore::FETile::platformApplySoftware):
* platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::platformApplySoftware):
* platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::platformApplySoftware):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::paint):
* platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
(WebCore::ImageBackingSurfaceClient::ImageBackingSurfaceClient):
(WebCore::CoordinatedImageBacking::update):
* platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRendererHelper::applyFilterEffect):
* rendering/ImageQualityController.cpp:
(WebCore::ImageQualityController::shouldPaintAtLowQuality):
* rendering/ImageQualityController.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::shouldPaintAtLowQuality):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderBoxModelObject.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintSnapshotImage):
(WebCore::RenderEmbeddedObject::paintContents):
* rendering/RenderEmbeddedObject.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):
* rendering/RenderImageResourceStyleImage.cpp:
(WebCore::RenderImageResourceStyleImage::shutdown):
(WebCore::RenderImageResourceStyleImage::image):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::drawPlatformResizerImage):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paintSnapshot):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintProgressBar):
(WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
* rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::paintSearchFieldCancelButton):
(WebCore::RenderThemeWin::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeWin::paintSearchFieldResultsButton):
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::createShapeForImage): Deleted.
* rendering/style/NinePieceImage.cpp:
(WebCore::NinePieceImage::paint):
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paintForeground):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::postApplyResource):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::clipToImageBuffer):
(WebCore::SVGRenderingContext::bufferForeground):
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):

Source/WebKit/win:

* FullscreenVideoController.cpp:
(HUDButton::draw):
* Plugins/PluginView.cpp:
(WebCore::PluginView::paintMissingPluginIcon):

Source/WebKit2:

* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
* Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeImage):
(IPC::encodeOptionalImage):
(IPC::ArgumentCoder&lt;Cursor&gt;::encode):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createSelectionSnapshot):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssCSSCrossfadeValuecpp">trunk/Source/WebCore/css/CSSCrossfadeValue.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSFilterImageValuecpp">trunk/Source/WebCore/css/CSSFilterImageValue.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLCanvasElementcpp">trunk/Source/WebCore/html/HTMLCanvasElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dh">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGL2RenderingContextcpp">trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextcpp">trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseh">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollViewcpp">trunk/Source/WebCore/platform/ScrollView.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsCrossfadeGeneratedImagecpp">trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsCrossfadeGeneratedImageh">trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGradientImagecpp">trunk/Source/WebCore/platform/graphics/GradientImage.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsContextcpp">trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsGraphicsContexth">trunk/Source/WebCore/platform/graphics/GraphicsContext.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsShadowBlurcpp">trunk/Source/WebCore/platform/graphics/ShadowBlur.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscairoImageBufferCairocpp">trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscgPDFDocumentImagecpp">trunk/Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersFEBlendcpp">trunk/Source/WebCore/platform/graphics/filters/FEBlend.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersFEColorMatrixcpp">trunk/Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersFECompositecpp">trunk/Source/WebCore/platform/graphics/filters/FEComposite.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersFEDropShadowcpp">trunk/Source/WebCore/platform/graphics/filters/FEDropShadow.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersFEMergecpp">trunk/Source/WebCore/platform/graphics/filters/FEMerge.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersFEOffsetcpp">trunk/Source/WebCore/platform/graphics/filters/FEOffset.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersFETilecpp">trunk/Source/WebCore/platform/graphics/filters/FETile.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersSourceAlphacpp">trunk/Source/WebCore/platform/graphics/filters/SourceAlpha.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfiltersSourceGraphiccpp">trunk/Source/WebCore/platform/graphics/filters/SourceGraphic.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerBasecpp">trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedImageBackingcpp">trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmacThemeMacmm">trunk/Source/WebCore/platform/mac/ThemeMac.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingFilterEffectRenderercpp">trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingImageQualityControllercpp">trunk/Source/WebCore/rendering/ImageQualityController.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingImageQualityControllerh">trunk/Source/WebCore/rendering/ImageQualityController.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjectcpp">trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjecth">trunk/Source/WebCore/rendering/RenderBoxModelObject.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderEmbeddedObjectcpp">trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderEmbeddedObjecth">trunk/Source/WebCore/rendering/RenderEmbeddedObject.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderImagecpp">trunk/Source/WebCore/rendering/RenderImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderImageResourceStyleImagecpp">trunk/Source/WebCore/rendering/RenderImageResourceStyleImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderListMarkercpp">trunk/Source/WebCore/rendering/RenderListMarker.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderSnapshottedPlugIncpp">trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeMacmm">trunk/Source/WebCore/rendering/RenderThemeMac.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeWincpp">trunk/Source/WebCore/rendering/RenderThemeWin.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingshapesShapecpp">trunk/Source/WebCore/rendering/shapes/Shape.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingshapesShapeOutsideInfocpp">trunk/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleNinePieceImagecpp">trunk/Source/WebCore/rendering/style/NinePieceImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGImagecpp">trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGResourceFiltercpp">trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGRenderingContextcpp">trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp</a></li>
<li><a href="#trunkSourceWebCoresvggraphicsfiltersSVGFEImagecpp">trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinFullscreenVideoControllercpp">trunk/Source/WebKit/win/FullscreenVideoController.cpp</a></li>
<li><a href="#trunkSourceWebKitwinPluginsPluginViewcpp">trunk/Source/WebKit/win/Plugins/PluginView.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedContextMenuContextDatacpp">trunk/Source/WebKit2/Shared/ContextMenuContextData.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedWebCoreArgumentCoderscpp">trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebFramecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageiosFindControllerIOSmm">trunk/Source/WebKit2/WebProcess/WebPage/ios/FindControllerIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageiosWebPageIOSmm">trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/ChangeLog        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -1,3 +1,136 @@
</span><ins>+2015-10-14  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Change GraphicsContext image-drawing functions to take references
+        https://bugs.webkit.org/show_bug.cgi?id=150108
+
+        Reviewed by Tim Horton and Sam Weinig.
+
+        Change GraphicsContext::drawImage(), drawTiledImage(), drawImageBuffer(), clipToImageBuffer()
+        and isCompatibleWithBuffer() to take references, and adjust calling code, adding
+        null-checks where necessary.
+
+        * css/CSSCrossfadeValue.cpp:
+        (WebCore::CSSCrossfadeValue::image):
+        * css/CSSFilterImageValue.cpp:
+        (WebCore::CSSFilterImageValue::image):
+        * html/HTMLCanvasElement.cpp:
+        (WebCore::HTMLCanvasElement::paint):
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::drawImage):
+        (WebCore::CanvasRenderingContext2D::compositeBuffer):
+        (WebCore::drawImageToContext):
+        (WebCore::CanvasRenderingContext2D::fullCanvasCompositedDrawImage):
+        (WebCore::CanvasRenderingContext2D::drawTextInternal):
+        * html/canvas/CanvasRenderingContext2D.h:
+        * html/canvas/WebGL2RenderingContext.cpp:
+        (WebCore::WebGL2RenderingContext::texSubImage2D):
+        * html/canvas/WebGLRenderingContext.cpp:
+        (WebCore::WebGLRenderingContext::texSubImage2D):
+        * html/canvas/WebGLRenderingContextBase.cpp:
+        (WebCore::WebGLRenderingContextBase::drawImageIntoBuffer):
+        (WebCore::WebGLRenderingContextBase::texImage2D):
+        * html/canvas/WebGLRenderingContextBase.h:
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::paintPanScrollIcon):
+        * platform/graphics/CrossfadeGeneratedImage.cpp:
+        (WebCore::CrossfadeGeneratedImage::CrossfadeGeneratedImage):
+        (WebCore::drawCrossfadeSubimage):
+        (WebCore::CrossfadeGeneratedImage::drawCrossfade):
+        * platform/graphics/CrossfadeGeneratedImage.h:
+        * platform/graphics/GradientImage.cpp:
+        (WebCore::GradientImage::drawPattern):
+        * platform/graphics/GraphicsContext.cpp:
+        (WebCore::GraphicsContext::drawImage):
+        (WebCore::GraphicsContext::drawTiledImage):
+        (WebCore::GraphicsContext::drawImageBuffer):
+        (WebCore::GraphicsContext::clipToImageBuffer):
+        (WebCore::GraphicsContext::isCompatibleWithBuffer):
+        * platform/graphics/GraphicsContext.h:
+        * platform/graphics/ShadowBlur.cpp:
+        (WebCore::ShadowBlur::drawShadowBuffer):
+        (WebCore::ShadowBlur::drawRectShadowWithoutTiling):
+        (WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
+        (WebCore::ShadowBlur::drawInsetShadowWithTiling):
+        (WebCore::ShadowBlur::drawRectShadowWithTiling):
+        (WebCore::ShadowBlur::drawLayerPieces):
+        (WebCore::ShadowBlur::endShadowLayer):
+        * platform/graphics/cairo/ImageBufferCairo.cpp:
+        (WebCore::ImageBuffer::draw):
+        * platform/graphics/cg/PDFDocumentImage.cpp:
+        (WebCore::PDFDocumentImage::draw):
+        * platform/graphics/filters/FEBlend.cpp:
+        (WebCore::FEBlend::platformApplySoftware):
+        * platform/graphics/filters/FEColorMatrix.cpp:
+        (WebCore::FEColorMatrix::platformApplySoftware):
+        * platform/graphics/filters/FEComposite.cpp:
+        (WebCore::FEComposite::platformApplySoftware):
+        * platform/graphics/filters/FEDropShadow.cpp:
+        (WebCore::FEDropShadow::platformApplySoftware):
+        * platform/graphics/filters/FEMerge.cpp:
+        (WebCore::FEMerge::platformApplySoftware):
+        * platform/graphics/filters/FEOffset.cpp:
+        (WebCore::FEOffset::platformApplySoftware):
+        * platform/graphics/filters/FETile.cpp:
+        (WebCore::FETile::platformApplySoftware):
+        * platform/graphics/filters/SourceAlpha.cpp:
+        (WebCore::SourceAlpha::platformApplySoftware):
+        * platform/graphics/filters/SourceGraphic.cpp:
+        (WebCore::SourceGraphic::platformApplySoftware):
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
+        (WebCore::MediaPlayerPrivateGStreamerBase::paint):
+        * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
+        (WebCore::ImageBackingSurfaceClient::ImageBackingSurfaceClient):
+        (WebCore::CoordinatedImageBacking::update):
+        * platform/mac/ThemeMac.mm:
+        (WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
+        * rendering/FilterEffectRenderer.cpp:
+        (WebCore::FilterEffectRendererHelper::applyFilterEffect):
+        * rendering/ImageQualityController.cpp:
+        (WebCore::ImageQualityController::shouldPaintAtLowQuality):
+        * rendering/ImageQualityController.h:
+        * rendering/RenderBoxModelObject.cpp:
+        (WebCore::RenderBoxModelObject::shouldPaintAtLowQuality):
+        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
+        * rendering/RenderBoxModelObject.h:
+        * rendering/RenderEmbeddedObject.cpp:
+        (WebCore::RenderEmbeddedObject::paintSnapshotImage):
+        (WebCore::RenderEmbeddedObject::paintContents):
+        * rendering/RenderEmbeddedObject.h:
+        * rendering/RenderImage.cpp:
+        (WebCore::RenderImage::paintReplaced):
+        (WebCore::RenderImage::paintIntoRect):
+        * rendering/RenderImageResourceStyleImage.cpp:
+        (WebCore::RenderImageResourceStyleImage::shutdown):
+        (WebCore::RenderImageResourceStyleImage::image):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::drawPlatformResizerImage):
+        * rendering/RenderListMarker.cpp:
+        (WebCore::RenderListMarker::paint):
+        * rendering/RenderSnapshottedPlugIn.cpp:
+        (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
+        * rendering/RenderThemeMac.mm:
+        (WebCore::RenderThemeMac::paintProgressBar):
+        (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
+        * rendering/RenderThemeWin.cpp:
+        (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
+        (WebCore::RenderThemeWin::paintSearchFieldResultsDecorationPart):
+        (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
+        * rendering/shapes/Shape.cpp:
+        (WebCore::Shape::createRasterShape):
+        * rendering/shapes/ShapeOutsideInfo.cpp:
+        (WebCore::ShapeOutsideInfo::createShapeForImage): Deleted.
+        * rendering/style/NinePieceImage.cpp:
+        (WebCore::NinePieceImage::paint):
+        * rendering/svg/RenderSVGImage.cpp:
+        (WebCore::RenderSVGImage::paintForeground):
+        * rendering/svg/RenderSVGResourceFilter.cpp:
+        (WebCore::RenderSVGResourceFilter::postApplyResource):
+        * rendering/svg/SVGRenderingContext.cpp:
+        (WebCore::SVGRenderingContext::clipToImageBuffer):
+        (WebCore::SVGRenderingContext::bufferForeground):
+        * svg/graphics/filters/SVGFEImage.cpp:
+        (WebCore::FEImage::platformApplySoftware):
+
</ins><span class="cx"> 2015-10-14  Said Abou-Hallawa  &lt;sabouhallawa@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION(r53318): background-repeat: space with gradients doesn't render correctly
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSCrossfadeValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSCrossfadeValue.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSCrossfadeValue.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/css/CSSCrossfadeValue.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx">     if (!fromImage || !toImage)
</span><span class="cx">         return Image::nullImage();
</span><span class="cx"> 
</span><del>-    m_generatedImage = CrossfadeGeneratedImage::create(fromImage, toImage, m_percentageValue-&gt;getFloatValue(), fixedSize(renderer), size);
</del><ins>+    m_generatedImage = CrossfadeGeneratedImage::create(*fromImage, *toImage, m_percentageValue-&gt;getFloatValue(), fixedSize(renderer), size);
</ins><span class="cx"> 
</span><span class="cx">     return m_generatedImage;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFilterImageValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFilterImageValue.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFilterImageValue.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/css/CSSFilterImageValue.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -124,8 +124,9 @@
</span><span class="cx">     std::unique_ptr&lt;ImageBuffer&gt; texture = ImageBuffer::create(size, Unaccelerated);
</span><span class="cx">     if (!texture)
</span><span class="cx">         return Image::nullImage();
</span><ins>+
</ins><span class="cx">     FloatRect imageRect = FloatRect(FloatPoint(), size);
</span><del>-    texture-&gt;context().drawImage(image, ColorSpaceDeviceRGB, imageRect);
</del><ins>+    texture-&gt;context().drawImage(*image, ColorSpaceDeviceRGB, imageRect);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;FilterEffectRenderer&gt; filterRenderer = FilterEffectRenderer::create();
</span><span class="cx">     filterRenderer-&gt;setSourceImage(WTF::move(texture));
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLCanvasElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLCanvasElement.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -388,9 +388,9 @@
</span><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><span class="cx">                 orientationDescription.setImageOrientationEnum(renderer()-&gt;style().imageOrientation());
</span><span class="cx"> #endif 
</span><del>-                context.drawImage(m_presentedImage.get(), ColorSpaceDeviceRGB, snappedIntRect(r), ImagePaintingOptions(orientationDescription, useLowQualityScale));
</del><ins>+                context.drawImage(*m_presentedImage, ColorSpaceDeviceRGB, snappedIntRect(r), ImagePaintingOptions(orientationDescription, useLowQualityScale));
</ins><span class="cx">             } else
</span><del>-                context.drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, snappedIntRect(r), useLowQualityScale);
</del><ins>+                context.drawImageBuffer(*imageBuffer, ColorSpaceDeviceRGB, snappedIntRect(r), useLowQualityScale);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -1448,17 +1448,17 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (rectContainsCanvas(normalizedDstRect)) {
</span><del>-        c-&gt;drawImage(image, ColorSpaceDeviceRGB, normalizedDstRect, normalizedSrcRect, ImagePaintingOptions(op, blendMode));
</del><ins>+        c-&gt;drawImage(*image, ColorSpaceDeviceRGB, normalizedDstRect, normalizedSrcRect, ImagePaintingOptions(op, blendMode));
</ins><span class="cx">         didDrawEntireCanvas();
</span><span class="cx">     } else if (isFullCanvasCompositeMode(op)) {
</span><del>-        fullCanvasCompositedDrawImage(image, ColorSpaceDeviceRGB, normalizedDstRect, normalizedSrcRect, op);
</del><ins>+        fullCanvasCompositedDrawImage(*image, ColorSpaceDeviceRGB, normalizedDstRect, normalizedSrcRect, op);
</ins><span class="cx">         didDrawEntireCanvas();
</span><span class="cx">     } else if (op == CompositeCopy) {
</span><span class="cx">         clearCanvas();
</span><del>-        c-&gt;drawImage(image, ColorSpaceDeviceRGB, normalizedDstRect, normalizedSrcRect, ImagePaintingOptions(op, blendMode));
</del><ins>+        c-&gt;drawImage(*image, ColorSpaceDeviceRGB, normalizedDstRect, normalizedSrcRect, ImagePaintingOptions(op, blendMode));
</ins><span class="cx">         didDrawEntireCanvas();
</span><span class="cx">     } else {
</span><del>-        c-&gt;drawImage(image, ColorSpaceDeviceRGB, normalizedDstRect, normalizedSrcRect, ImagePaintingOptions(op, blendMode));
</del><ins>+        c-&gt;drawImage(*image, ColorSpaceDeviceRGB, normalizedDstRect, normalizedSrcRect, ImagePaintingOptions(op, blendMode));
</ins><span class="cx">         didDraw(normalizedDstRect);
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -1536,17 +1536,17 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     if (rectContainsCanvas(dstRect)) {
</span><del>-        c-&gt;drawImageBuffer(buffer, ColorSpaceDeviceRGB, dstRect, srcRect, ImagePaintingOptions(state().globalComposite, state().globalBlend));
</del><ins>+        c-&gt;drawImageBuffer(*buffer, ColorSpaceDeviceRGB, dstRect, srcRect, ImagePaintingOptions(state().globalComposite, state().globalBlend));
</ins><span class="cx">         didDrawEntireCanvas();
</span><span class="cx">     } else if (isFullCanvasCompositeMode(state().globalComposite)) {
</span><del>-        fullCanvasCompositedDrawImage(buffer, ColorSpaceDeviceRGB, dstRect, srcRect, state().globalComposite);
</del><ins>+        fullCanvasCompositedDrawImage(*buffer, ColorSpaceDeviceRGB, dstRect, srcRect, state().globalComposite);
</ins><span class="cx">         didDrawEntireCanvas();
</span><span class="cx">     } else if (state().globalComposite == CompositeCopy) {
</span><span class="cx">         clearCanvas();
</span><del>-        c-&gt;drawImageBuffer(buffer, ColorSpaceDeviceRGB, dstRect, srcRect, ImagePaintingOptions(state().globalComposite, state().globalBlend));
</del><ins>+        c-&gt;drawImageBuffer(*buffer, ColorSpaceDeviceRGB, dstRect, srcRect, ImagePaintingOptions(state().globalComposite, state().globalBlend));
</ins><span class="cx">         didDrawEntireCanvas();
</span><span class="cx">     } else {
</span><del>-        c-&gt;drawImageBuffer(buffer, ColorSpaceDeviceRGB, dstRect, srcRect, ImagePaintingOptions(state().globalComposite, state().globalBlend));
</del><ins>+        c-&gt;drawImageBuffer(*buffer, ColorSpaceDeviceRGB, dstRect, srcRect, ImagePaintingOptions(state().globalComposite, state().globalBlend));
</ins><span class="cx">         didDraw(dstRect);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -1709,7 +1709,7 @@
</span><span class="cx">     return ImageBuffer::create(bufferRect.size(), isAccelerated() ? Accelerated : Unaccelerated);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CanvasRenderingContext2D::compositeBuffer(ImageBuffer* buffer, const IntRect&amp; bufferRect, CompositeOperator op)
</del><ins>+void CanvasRenderingContext2D::compositeBuffer(ImageBuffer&amp; buffer, const IntRect&amp; bufferRect, CompositeOperator op)
</ins><span class="cx"> {
</span><span class="cx">     IntRect canvasRect(0, 0, canvas()-&gt;width(), canvas()-&gt;height());
</span><span class="cx">     canvasRect = canvas()-&gt;baseTransform().mapRect(canvasRect);
</span><span class="lines">@@ -1730,17 +1730,17 @@
</span><span class="cx">     c-&gt;restore();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void drawImageToContext(Image* image, GraphicsContext&amp; context, ColorSpace styleColorSpace, const FloatRect&amp; dest, const FloatRect&amp; src, CompositeOperator op)
</del><ins>+static void drawImageToContext(Image&amp; image, GraphicsContext&amp; context, ColorSpace styleColorSpace, const FloatRect&amp; dest, const FloatRect&amp; src, CompositeOperator op)
</ins><span class="cx"> {
</span><span class="cx">     context.drawImage(image, styleColorSpace, dest, src, op);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void drawImageToContext(ImageBuffer* imageBuffer, GraphicsContext&amp; context, ColorSpace styleColorSpace, const FloatRect&amp; dest, const FloatRect&amp; src, CompositeOperator op)
</del><ins>+static void drawImageToContext(ImageBuffer&amp; imageBuffer, GraphicsContext&amp; context, ColorSpace styleColorSpace, const FloatRect&amp; dest, const FloatRect&amp; src, CompositeOperator op)
</ins><span class="cx"> {
</span><span class="cx">     context.drawImageBuffer(imageBuffer, styleColorSpace, dest, src, op);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;class T&gt; void  CanvasRenderingContext2D::fullCanvasCompositedDrawImage(T* image, ColorSpace styleColorSpace, const FloatRect&amp; dest, const FloatRect&amp; src, CompositeOperator op)
</del><ins>+template&lt;class T&gt; void  CanvasRenderingContext2D::fullCanvasCompositedDrawImage(T&amp; image, ColorSpace styleColorSpace, const FloatRect&amp; dest, const FloatRect&amp; src, CompositeOperator op)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isFullCanvasCompositeMode(op));
</span><span class="cx"> 
</span><span class="lines">@@ -1768,7 +1768,7 @@
</span><span class="cx">     buffer-&gt;context().concatCTM(effectiveTransform);
</span><span class="cx">     drawImageToContext(image, buffer-&gt;context(), styleColorSpace, adjustedDest, src, CompositeSourceOver);
</span><span class="cx"> 
</span><del>-    compositeBuffer(buffer.get(), bufferRect, op);
</del><ins>+    compositeBuffer(*buffer, bufferRect, op);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CanvasRenderingContext2D::prepareGradientForDashboard(CanvasGradient&amp; gradient) const
</span><span class="lines">@@ -2419,7 +2419,7 @@
</span><span class="cx"> 
</span><span class="cx">     // The slop built in to this mask rect matches the heuristic used in FontCGWin.cpp for GDI text.
</span><span class="cx">     FloatRect textRect = FloatRect(location.x() - fontMetrics.height() / 2, location.y() - fontMetrics.ascent() - fontMetrics.lineGap(),
</span><del>-                                   width + fontMetrics.height(), fontMetrics.lineSpacing());
</del><ins>+        width + fontMetrics.height(), fontMetrics.lineSpacing());
</ins><span class="cx">     if (!fill)
</span><span class="cx">         inflateStrokeRect(textRect);
</span><span class="cx"> 
</span><span class="lines">@@ -2461,6 +2461,8 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         std::unique_ptr&lt;ImageBuffer&gt; maskImage = c-&gt;createCompatibleBuffer(maskRect.size());
</span><ins>+        if (!maskImage)
+            return;
</ins><span class="cx"> 
</span><span class="cx">         GraphicsContext&amp; maskImageContext = maskImage-&gt;context();
</span><span class="cx"> 
</span><span class="lines">@@ -2484,7 +2486,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         GraphicsContextStateSaver stateSaver(*c);
</span><del>-        c-&gt;clipToImageBuffer(maskImage.get(), maskRect);
</del><ins>+        c-&gt;clipToImageBuffer(*maskImage, maskRect);
</ins><span class="cx">         drawStyle.applyFillColor(c);
</span><span class="cx">         c-&gt;fillRect(maskRect);
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.h        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -363,11 +363,11 @@
</span><span class="cx"> 
</span><span class="cx">     template&lt;class T&gt; IntRect calculateCompositingBufferRect(const T&amp;, IntSize*);
</span><span class="cx">     std::unique_ptr&lt;ImageBuffer&gt; createCompositingBuffer(const IntRect&amp;);
</span><del>-    void compositeBuffer(ImageBuffer*, const IntRect&amp;, CompositeOperator);
</del><ins>+    void compositeBuffer(ImageBuffer&amp;, const IntRect&amp;, CompositeOperator);
</ins><span class="cx"> 
</span><span class="cx">     void inflateStrokeRect(FloatRect&amp;) const;
</span><span class="cx"> 
</span><del>-    template&lt;class T&gt; void fullCanvasCompositedDrawImage(T*, ColorSpace, const FloatRect&amp;, const FloatRect&amp;, CompositeOperator);
</del><ins>+    template&lt;class T&gt; void fullCanvasCompositedDrawImage(T&amp;, ColorSpace, const FloatRect&amp;, const FloatRect&amp;, CompositeOperator);
</ins><span class="cx"> 
</span><span class="cx">     void prepareGradientForDashboard(CanvasGradient&amp; gradient) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGL2RenderingContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -1419,8 +1419,11 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     RefPtr&lt;Image&gt; imageForRender = image-&gt;cachedImage()-&gt;imageForRenderer(image-&gt;renderer());
</span><ins>+    if (!imageForRender)
+        return;
+
</ins><span class="cx">     if (imageForRender-&gt;isSVGImage())
</span><del>-        imageForRender = drawImageIntoBuffer(imageForRender.get(), image-&gt;width(), image-&gt;height(), 1);
</del><ins>+        imageForRender = drawImageIntoBuffer(*imageForRender, image-&gt;width(), image-&gt;height(), 1);
</ins><span class="cx">     
</span><span class="cx">     if (!imageForRender || !validateTexFunc(&quot;texSubImage2D&quot;, TexSubImage, SourceHTMLImageElement, target, level, GraphicsContext3D::NONE, imageForRender-&gt;width(), imageForRender-&gt;height(), 0, format, type, xoffset, yoffset))
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -623,8 +623,11 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     RefPtr&lt;Image&gt; imageForRender = image-&gt;cachedImage()-&gt;imageForRenderer(image-&gt;renderer());
</span><ins>+    if (!imageForRender)
+        return;
+
</ins><span class="cx">     if (imageForRender-&gt;isSVGImage())
</span><del>-        imageForRender = drawImageIntoBuffer(imageForRender.get(), image-&gt;width(), image-&gt;height(), 1);
</del><ins>+        imageForRender = drawImageIntoBuffer(*imageForRender, image-&gt;width(), image-&gt;height(), 1);
</ins><span class="cx">     
</span><span class="cx">     if (!imageForRender || !validateTexFunc(&quot;texSubImage2D&quot;, TexSubImage, SourceHTMLImageElement, target, level, format, imageForRender-&gt;width(), imageForRender-&gt;height(), 0, format, type, xoffset, yoffset))
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -3164,7 +3164,7 @@
</span><span class="cx">         m_context-&gt;pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Image&gt; WebGLRenderingContextBase::drawImageIntoBuffer(Image* image, int width, int height, int deviceScaleFactor)
</del><ins>+PassRefPtr&lt;Image&gt; WebGLRenderingContextBase::drawImageIntoBuffer(Image&amp; image, int width, int height, int deviceScaleFactor)
</ins><span class="cx"> {
</span><span class="cx">     IntSize size(width, height);
</span><span class="cx">     size.scale(deviceScaleFactor);
</span><span class="lines">@@ -3174,7 +3174,7 @@
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    FloatRect srcRect(FloatPoint(), image-&gt;size());
</del><ins>+    FloatRect srcRect(FloatPoint(), image.size());
</ins><span class="cx">     FloatRect destRect(FloatPoint(), size);
</span><span class="cx">     buf-&gt;context().drawImage(image, ColorSpaceDeviceRGB, destRect, srcRect);
</span><span class="cx">     return buf-&gt;copyImage(ImageBuffer::fastCopyImageMode());
</span><span class="lines">@@ -3188,8 +3188,11 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Image&gt; imageForRender = image-&gt;cachedImage()-&gt;imageForRenderer(image-&gt;renderer());
</span><ins>+    if (!imageForRender)
+        return;
+
</ins><span class="cx">     if (imageForRender-&gt;isSVGImage())
</span><del>-        imageForRender = drawImageIntoBuffer(imageForRender.get(), image-&gt;width(), image-&gt;height(), 1);
</del><ins>+        imageForRender = drawImageIntoBuffer(*imageForRender, image-&gt;width(), image-&gt;height(), 1);
</ins><span class="cx"> 
</span><span class="cx">     if (!imageForRender || !validateTexFunc(&quot;texImage2D&quot;, TexImage, SourceHTMLImageElement, target, level, internalformat, imageForRender-&gt;width(), imageForRender-&gt;height(), 0, format, type, 0, 0))
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -426,7 +426,7 @@
</span><span class="cx">     // Adds a compressed texture format.
</span><span class="cx">     void addCompressedTextureFormat(GC3Denum);
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;Image&gt; drawImageIntoBuffer(Image*, int width, int height, int deviceScaleFactor);
</del><ins>+    PassRefPtr&lt;Image&gt; drawImageIntoBuffer(Image&amp;, int width, int height, int deviceScaleFactor);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span><span class="cx">     PassRefPtr&lt;Image&gt; videoFrameToImage(HTMLVideoElement*, BackingStoreCopy, ExceptionCode&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollView.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollView.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/ScrollView.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -1178,10 +1178,12 @@
</span><span class="cx"> void ScrollView::paintPanScrollIcon(GraphicsContext&amp; context)
</span><span class="cx"> {
</span><span class="cx">     static Image* panScrollIcon = Image::loadPlatformResource(&quot;panIcon&quot;).leakRef();
</span><ins>+    if (!panScrollIcon)
+        return;
</ins><span class="cx">     IntPoint iconGCPoint = m_panScrollIconPoint;
</span><span class="cx">     if (parent())
</span><span class="cx">         iconGCPoint = parent()-&gt;windowToContents(iconGCPoint);
</span><del>-    context.drawImage(panScrollIcon, ColorSpaceDeviceRGB, iconGCPoint);
</del><ins>+    context.drawImage(*panScrollIcon, ColorSpaceDeviceRGB, iconGCPoint);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollView::paint(GraphicsContext&amp; context, const IntRect&amp; rect)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsCrossfadeGeneratedImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-CrossfadeGeneratedImage::CrossfadeGeneratedImage(Image* fromImage, Image* toImage, float percentage, const FloatSize&amp; crossfadeSize, const FloatSize&amp; size)
</del><ins>+CrossfadeGeneratedImage::CrossfadeGeneratedImage(Image&amp; fromImage, Image&amp; toImage, float percentage, const FloatSize&amp; crossfadeSize, const FloatSize&amp; size)
</ins><span class="cx">     : m_fromImage(fromImage)
</span><span class="cx">     , m_toImage(toImage)
</span><span class="cx">     , m_percentage(percentage)
</span><span class="lines">@@ -41,12 +41,12 @@
</span><span class="cx">     setContainerSize(size);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void drawCrossfadeSubimage(GraphicsContext&amp; context, Image* image, CompositeOperator operation, float opacity, const FloatSize&amp; targetSize)
</del><ins>+static void drawCrossfadeSubimage(GraphicsContext&amp; context, Image&amp; image, CompositeOperator operation, float opacity, const FloatSize&amp; targetSize)
</ins><span class="cx"> {
</span><del>-    FloatSize imageSize = image-&gt;size();
</del><ins>+    FloatSize imageSize = image.size();
</ins><span class="cx"> 
</span><span class="cx">     // SVGImage resets the opacity when painting, so we have to use transparency layers to accurately paint one at a given opacity.
</span><del>-    bool useTransparencyLayer = image-&gt;isSVGImage();
</del><ins>+    bool useTransparencyLayer = image.isSVGImage();
</ins><span class="cx"> 
</span><span class="cx">     GraphicsContextStateSaver stateSaver(context);
</span><span class="cx"> 
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> void CrossfadeGeneratedImage::drawCrossfade(GraphicsContext&amp; context)
</span><span class="cx"> {
</span><span class="cx">     // Draw nothing if either of the images hasn't loaded yet.
</span><del>-    if (m_fromImage == Image::nullImage() || m_toImage == Image::nullImage())
</del><ins>+    if (m_fromImage.ptr() == Image::nullImage() || m_toImage.ptr() == Image::nullImage())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     GraphicsContextStateSaver stateSaver(context);
</span><span class="lines">@@ -76,8 +76,8 @@
</span><span class="cx">     context.clip(FloatRect(FloatPoint(), m_crossfadeSize));
</span><span class="cx">     context.beginTransparencyLayer(1);
</span><span class="cx"> 
</span><del>-    drawCrossfadeSubimage(context, m_fromImage, CompositeSourceOver, 1 - m_percentage, m_crossfadeSize);
-    drawCrossfadeSubimage(context, m_toImage, CompositePlusLighter, m_percentage, m_crossfadeSize);
</del><ins>+    drawCrossfadeSubimage(context, m_fromImage.get(), CompositeSourceOver, 1 - m_percentage, m_crossfadeSize);
+    drawCrossfadeSubimage(context, m_toImage.get(), CompositePlusLighter, m_percentage, m_crossfadeSize);
</ins><span class="cx"> 
</span><span class="cx">     context.endTransparencyLayer();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsCrossfadeGeneratedImageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> 
</span><span class="cx"> class CrossfadeGeneratedImage final : public GeneratedImage {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;CrossfadeGeneratedImage&gt; create(Image* fromImage, Image* toImage, float percentage, const FloatSize&amp; crossfadeSize, const FloatSize&amp; size)
</del><ins>+    static Ref&lt;CrossfadeGeneratedImage&gt; create(Image&amp; fromImage, Image&amp; toImage, float percentage, const FloatSize&amp; crossfadeSize, const FloatSize&amp; size)
</ins><span class="cx">     {
</span><span class="cx">         return adoptRef(*new CrossfadeGeneratedImage(fromImage, toImage, percentage, crossfadeSize, size));
</span><span class="cx">     }
</span><span class="lines">@@ -52,13 +52,13 @@
</span><span class="cx">     virtual void draw(GraphicsContext&amp;, const FloatRect&amp; dstRect, const FloatRect&amp; srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, ImageOrientationDescription) override;
</span><span class="cx">     virtual void drawPattern(GraphicsContext&amp;, const FloatRect&amp; srcRect, const AffineTransform&amp; patternTransform, const FloatPoint&amp; phase, const FloatSize&amp; spacing, ColorSpace styleColorSpace, CompositeOperator, const FloatRect&amp; dstRect, BlendMode) override;
</span><span class="cx"> 
</span><del>-    CrossfadeGeneratedImage(Image* fromImage, Image* toImage, float percentage, const FloatSize&amp; crossfadeSize, const FloatSize&amp;);
</del><ins>+    CrossfadeGeneratedImage(Image&amp; fromImage, Image&amp; toImage, float percentage, const FloatSize&amp; crossfadeSize, const FloatSize&amp;);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     void drawCrossfade(GraphicsContext&amp;);
</span><span class="cx"> 
</span><del>-    Image* m_fromImage;
-    Image* m_toImage;
</del><ins>+    Ref&lt;Image&gt; m_fromImage;
+    Ref&lt;Image&gt; m_toImage;
</ins><span class="cx"> 
</span><span class="cx">     float m_percentage;
</span><span class="cx">     FloatSize m_crossfadeSize;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGradientImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GradientImage.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GradientImage.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/GradientImage.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx"> 
</span><span class="cx">     unsigned generatorHash = m_gradient-&gt;hash();
</span><span class="cx"> 
</span><del>-    if (!m_cachedImageBuffer || m_cachedGeneratorHash != generatorHash || m_cachedAdjustedSize != adjustedSize || !destContext.isCompatibleWithBuffer(m_cachedImageBuffer.get())) {
</del><ins>+    if (!m_cachedImageBuffer || m_cachedGeneratorHash != generatorHash || m_cachedAdjustedSize != adjustedSize || !destContext.isCompatibleWithBuffer(*m_cachedImageBuffer)) {
</ins><span class="cx">         m_cachedImageBuffer = destContext.createCompatibleBuffer(adjustedSize, m_gradient-&gt;hasAlpha());
</span><span class="cx">         if (!m_cachedImageBuffer)
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -368,50 +368,45 @@
</span><span class="cx">     bidiRuns.deleteRuns();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContext::drawImage(Image* image, ColorSpace colorSpace, const FloatPoint&amp; destination, const ImagePaintingOptions&amp; imagePaintingOptions)
</del><ins>+void GraphicsContext::drawImage(Image&amp; image, ColorSpace colorSpace, const FloatPoint&amp; destination, const ImagePaintingOptions&amp; imagePaintingOptions)
</ins><span class="cx"> {
</span><del>-    if (!image)
-        return;
-    drawImage(image, colorSpace, FloatRect(destination, image-&gt;size()), FloatRect(FloatPoint(), image-&gt;size()), imagePaintingOptions);
</del><ins>+    drawImage(image, colorSpace, FloatRect(destination, image.size()), FloatRect(FloatPoint(), image.size()), imagePaintingOptions);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContext::drawImage(Image* image, ColorSpace colorSpace, const FloatRect&amp; destination, const ImagePaintingOptions&amp; imagePaintingOptions)
</del><ins>+void GraphicsContext::drawImage(Image&amp; image, ColorSpace colorSpace, const FloatRect&amp; destination, const ImagePaintingOptions&amp; imagePaintingOptions)
</ins><span class="cx"> {
</span><del>-    if (!image)
-        return;
-    
</del><span class="cx"> #if PLATFORM(IOS)
</span><del>-    FloatRect srcRect(FloatPoint(), image-&gt;originalSize());
</del><ins>+    FloatRect srcRect(FloatPoint(), image.originalSize());
</ins><span class="cx"> #else
</span><del>-    FloatRect srcRect(FloatPoint(), image-&gt;size());
</del><ins>+    FloatRect srcRect(FloatPoint(), image.size());
</ins><span class="cx"> #endif
</span><span class="cx">         
</span><span class="cx">     drawImage(image, colorSpace, destination, srcRect, imagePaintingOptions);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContext::drawImage(Image* image, ColorSpace colorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; imagePaintingOptions)
</del><ins>+void GraphicsContext::drawImage(Image&amp; image, ColorSpace colorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; imagePaintingOptions)
</ins><span class="cx"> {
</span><del>-    if (paintingDisabled() || !image)
</del><ins>+    if (paintingDisabled())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // FIXME (49002): Should be InterpolationLow
</span><span class="cx">     InterpolationQualityMaintainer interpolationQualityForThisScope(*this, imagePaintingOptions.m_useLowQualityScale ? InterpolationNone : imageInterpolationQuality());
</span><del>-    image-&gt;draw(*this, destination, source, colorSpace, imagePaintingOptions.m_compositeOperator, imagePaintingOptions.m_blendMode, imagePaintingOptions.m_orientationDescription);
</del><ins>+    image.draw(*this, destination, source, colorSpace, imagePaintingOptions.m_compositeOperator, imagePaintingOptions.m_blendMode, imagePaintingOptions.m_orientationDescription);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContext::drawTiledImage(Image* image, ColorSpace colorSpace, const FloatRect&amp; destination, const FloatPoint&amp; source, const FloatSize&amp; tileSize, const FloatSize&amp; spacing, const ImagePaintingOptions&amp; imagePaintingOptions)
</del><ins>+void GraphicsContext::drawTiledImage(Image&amp; image, ColorSpace colorSpace, const FloatRect&amp; destination, const FloatPoint&amp; source, const FloatSize&amp; tileSize, const FloatSize&amp; spacing, const ImagePaintingOptions&amp; imagePaintingOptions)
</ins><span class="cx"> {
</span><del>-    if (paintingDisabled() || !image)
</del><ins>+    if (paintingDisabled())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     InterpolationQualityMaintainer interpolationQualityForThisScope(*this, imagePaintingOptions.m_useLowQualityScale ? InterpolationLow : imageInterpolationQuality());
</span><del>-    image-&gt;drawTiled(*this, destination, source, tileSize, spacing, colorSpace, imagePaintingOptions.m_compositeOperator, imagePaintingOptions.m_blendMode);
</del><ins>+    image.drawTiled(*this, destination, source, tileSize, spacing, colorSpace, imagePaintingOptions.m_compositeOperator, imagePaintingOptions.m_blendMode);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContext::drawTiledImage(Image* image, ColorSpace colorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const FloatSize&amp; tileScaleFactor,
</del><ins>+void GraphicsContext::drawTiledImage(Image&amp; image, ColorSpace colorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const FloatSize&amp; tileScaleFactor,
</ins><span class="cx">     Image::TileRule hRule, Image::TileRule vRule, const ImagePaintingOptions&amp; imagePaintingOptions)
</span><span class="cx"> {
</span><del>-    if (paintingDisabled() || !image)
</del><ins>+    if (paintingDisabled())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (hRule == Image::StretchTile &amp;&amp; vRule == Image::StretchTile) {
</span><span class="lines">@@ -421,31 +416,27 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     InterpolationQualityMaintainer interpolationQualityForThisScope(*this, imagePaintingOptions.m_useLowQualityScale ? InterpolationLow : imageInterpolationQuality());
</span><del>-    image-&gt;drawTiled(*this, destination, source, tileScaleFactor, hRule, vRule, colorSpace, imagePaintingOptions.m_compositeOperator);
</del><ins>+    image.drawTiled(*this, destination, source, tileScaleFactor, hRule, vRule, colorSpace, imagePaintingOptions.m_compositeOperator);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContext::drawImageBuffer(ImageBuffer* image, ColorSpace colorSpace, const FloatPoint&amp; destination, const ImagePaintingOptions&amp; imagePaintingOptions)
</del><ins>+void GraphicsContext::drawImageBuffer(ImageBuffer&amp; image, ColorSpace colorSpace, const FloatPoint&amp; destination, const ImagePaintingOptions&amp; imagePaintingOptions)
</ins><span class="cx"> {
</span><del>-    if (!image)
-        return;
-    drawImageBuffer(image, colorSpace, FloatRect(destination, image-&gt;logicalSize()), FloatRect(FloatPoint(), image-&gt;logicalSize()), imagePaintingOptions);
</del><ins>+    drawImageBuffer(image, colorSpace, FloatRect(destination, image.logicalSize()), FloatRect(FloatPoint(), image.logicalSize()), imagePaintingOptions);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContext::drawImageBuffer(ImageBuffer* image, ColorSpace colorSpace, const FloatRect&amp; destination, const ImagePaintingOptions&amp; imagePaintingOptions)
</del><ins>+void GraphicsContext::drawImageBuffer(ImageBuffer&amp; image, ColorSpace colorSpace, const FloatRect&amp; destination, const ImagePaintingOptions&amp; imagePaintingOptions)
</ins><span class="cx"> {
</span><del>-    if (!image)
-        return;
-    drawImageBuffer(image, colorSpace, destination, FloatRect(FloatPoint(), FloatSize(image-&gt;logicalSize())), imagePaintingOptions);
</del><ins>+    drawImageBuffer(image, colorSpace, destination, FloatRect(FloatPoint(), FloatSize(image.logicalSize())), imagePaintingOptions);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContext::drawImageBuffer(ImageBuffer* image, ColorSpace colorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; imagePaintingOptions)
</del><ins>+void GraphicsContext::drawImageBuffer(ImageBuffer&amp; image, ColorSpace colorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; imagePaintingOptions)
</ins><span class="cx"> {
</span><del>-    if (paintingDisabled() || !image)
</del><ins>+    if (paintingDisabled())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // FIXME (49002): Should be InterpolationLow
</span><span class="cx">     InterpolationQualityMaintainer interpolationQualityForThisScope(*this, imagePaintingOptions.m_useLowQualityScale ? InterpolationNone : imageInterpolationQuality());
</span><del>-    image-&gt;draw(*this, colorSpace, destination, source, imagePaintingOptions.m_compositeOperator, imagePaintingOptions.m_blendMode, imagePaintingOptions.m_useLowQualityScale);
</del><ins>+    image.draw(*this, colorSpace, destination, source, imagePaintingOptions.m_compositeOperator, imagePaintingOptions.m_blendMode, imagePaintingOptions.m_useLowQualityScale);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void GraphicsContext::clip(const IntRect&amp; rect)
</span><span class="lines">@@ -478,11 +469,11 @@
</span><span class="cx">     clipOut(path);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void GraphicsContext::clipToImageBuffer(ImageBuffer* buffer, const FloatRect&amp; rect)
</del><ins>+void GraphicsContext::clipToImageBuffer(ImageBuffer&amp; buffer, const FloatRect&amp; rect)
</ins><span class="cx"> {
</span><span class="cx">     if (paintingDisabled())
</span><span class="cx">         return;
</span><del>-    buffer-&gt;clip(*this, rect);
</del><ins>+    buffer.clip(*this, rect);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if !USE(CG) &amp;&amp; !USE(CAIRO)
</span><span class="lines">@@ -648,9 +639,9 @@
</span><span class="cx">     return buffer;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool GraphicsContext::isCompatibleWithBuffer(ImageBuffer* buffer) const
</del><ins>+bool GraphicsContext::isCompatibleWithBuffer(ImageBuffer&amp; buffer) const
</ins><span class="cx"> {
</span><del>-    GraphicsContext&amp; bufferContext = buffer-&gt;context();
</del><ins>+    GraphicsContext&amp; bufferContext = buffer.context();
</ins><span class="cx"> 
</span><span class="cx">     return scalesMatch(getCTM(), bufferContext.getCTM()) &amp;&amp; isAcceleratedContext() == bufferContext.isAcceleratedContext();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsGraphicsContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/GraphicsContext.h (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/GraphicsContext.h        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/GraphicsContext.h        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -308,17 +308,17 @@
</span><span class="cx"> 
</span><span class="cx">         WEBCORE_EXPORT void strokeRect(const FloatRect&amp;, float lineWidth);
</span><span class="cx"> 
</span><del>-        WEBCORE_EXPORT void drawImage(Image*, ColorSpace, const FloatPoint&amp; destination, const ImagePaintingOptions&amp; = ImagePaintingOptions());
-        WEBCORE_EXPORT void drawImage(Image*, ColorSpace, const FloatRect&amp; destination, const ImagePaintingOptions&amp; = ImagePaintingOptions());
-        void drawImage(Image*, ColorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; = ImagePaintingOptions());
</del><ins>+        WEBCORE_EXPORT void drawImage(Image&amp;, ColorSpace, const FloatPoint&amp; destination, const ImagePaintingOptions&amp; = ImagePaintingOptions());
+        WEBCORE_EXPORT void drawImage(Image&amp;, ColorSpace, const FloatRect&amp; destination, const ImagePaintingOptions&amp; = ImagePaintingOptions());
+        void drawImage(Image&amp;, ColorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; = ImagePaintingOptions());
</ins><span class="cx"> 
</span><del>-        void drawTiledImage(Image*, ColorSpace, const FloatRect&amp; destination, const FloatPoint&amp; source, const FloatSize&amp; tileSize, const FloatSize&amp; spacing, const ImagePaintingOptions&amp; = ImagePaintingOptions());
-        void drawTiledImage(Image*, ColorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const FloatSize&amp; tileScaleFactor,
</del><ins>+        void drawTiledImage(Image&amp;, ColorSpace, const FloatRect&amp; destination, const FloatPoint&amp; source, const FloatSize&amp; tileSize, const FloatSize&amp; spacing, const ImagePaintingOptions&amp; = ImagePaintingOptions());
+        void drawTiledImage(Image&amp;, ColorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const FloatSize&amp; tileScaleFactor,
</ins><span class="cx">             Image::TileRule, Image::TileRule, const ImagePaintingOptions&amp; = ImagePaintingOptions());
</span><span class="cx"> 
</span><del>-        WEBCORE_EXPORT void drawImageBuffer(ImageBuffer*, ColorSpace, const FloatPoint&amp; destination, const ImagePaintingOptions&amp; = ImagePaintingOptions());
-        void drawImageBuffer(ImageBuffer*, ColorSpace, const FloatRect&amp; destination, const ImagePaintingOptions&amp; = ImagePaintingOptions());
-        void drawImageBuffer(ImageBuffer*, ColorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; = ImagePaintingOptions());
</del><ins>+        WEBCORE_EXPORT void drawImageBuffer(ImageBuffer&amp;, ColorSpace, const FloatPoint&amp; destination, const ImagePaintingOptions&amp; = ImagePaintingOptions());
+        void drawImageBuffer(ImageBuffer&amp;, ColorSpace, const FloatRect&amp; destination, const ImagePaintingOptions&amp; = ImagePaintingOptions());
+        void drawImageBuffer(ImageBuffer&amp;, ColorSpace, const FloatRect&amp; destination, const FloatRect&amp; source, const ImagePaintingOptions&amp; = ImagePaintingOptions());
</ins><span class="cx"> 
</span><span class="cx">         void drawPattern(Image&amp;, const FloatRect&amp; srcRect, const AffineTransform&amp;, const FloatPoint&amp; phase, const FloatSize&amp; spacing, ColorSpace, CompositeOperator, const FloatRect&amp; destRect, BlendMode = BlendModeNormal);
</span><span class="cx"> 
</span><span class="lines">@@ -333,7 +333,7 @@
</span><span class="cx">         void clipOutRoundedRect(const FloatRoundedRect&amp;);
</span><span class="cx">         void clipPath(const Path&amp;, WindRule);
</span><span class="cx">         void clipConvexPolygon(size_t numPoints, const FloatPoint*, bool antialias = true);
</span><del>-        void clipToImageBuffer(ImageBuffer*, const FloatRect&amp;);
</del><ins>+        void clipToImageBuffer(ImageBuffer&amp;, const FloatRect&amp;);
</ins><span class="cx">         
</span><span class="cx">         IntRect clipBounds() const;
</span><span class="cx"> 
</span><span class="lines">@@ -443,7 +443,7 @@
</span><span class="cx">         // Create an image buffer compatible with this context, with suitable resolution
</span><span class="cx">         // for drawing into the buffer and then into this context.
</span><span class="cx">         std::unique_ptr&lt;ImageBuffer&gt; createCompatibleBuffer(const FloatSize&amp;, bool hasAlpha = true) const;
</span><del>-        bool isCompatibleWithBuffer(ImageBuffer*) const;
</del><ins>+        bool isCompatibleWithBuffer(ImageBuffer&amp;) const;
</ins><span class="cx"> 
</span><span class="cx">         // This function applies the device scale factor to the context, making the context capable of
</span><span class="cx">         // acting as a base-level context for a HiDPI environment.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsShadowBlurcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ShadowBlur.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ShadowBlur.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/ShadowBlur.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -472,7 +472,7 @@
</span><span class="cx">         // but we may not have cleared it all, so clip to the filled part first.
</span><span class="cx">         graphicsContext.clip(FloatRect(m_layerOrigin, m_layerSize));
</span><span class="cx">     }
</span><del>-    graphicsContext.clipToImageBuffer(m_layerImage, FloatRect(m_layerOrigin, bufferSize));
</del><ins>+    graphicsContext.clipToImageBuffer(*m_layerImage, FloatRect(m_layerOrigin, bufferSize));
</ins><span class="cx">     graphicsContext.setFillColor(m_color, m_colorSpace);
</span><span class="cx"> 
</span><span class="cx">     graphicsContext.clearShadow();
</span><span class="lines">@@ -593,7 +593,7 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     drawShadowBuffer(graphicsContext);
</span><del>-    m_layerImage = 0;
</del><ins>+    m_layerImage = nullptr;
</ins><span class="cx">     ScratchBuffer::singleton().scheduleScratchBufferPurge();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -634,7 +634,7 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     drawShadowBuffer(graphicsContext);
</span><del>-    m_layerImage = 0;
</del><ins>+    m_layerImage = nullptr;
</ins><span class="cx">     ScratchBuffer::singleton().scheduleScratchBufferPurge();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -731,7 +731,7 @@
</span><span class="cx">     
</span><span class="cx">     drawLayerPieces(graphicsContext, destHoleBounds, holeRect.radii(), edgeSize, templateSize, InnerShadow);
</span><span class="cx"> 
</span><del>-    m_layerImage = 0;
</del><ins>+    m_layerImage = nullptr;
</ins><span class="cx">     ScratchBuffer::singleton().scheduleScratchBufferPurge();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -777,7 +777,7 @@
</span><span class="cx"> 
</span><span class="cx">     drawLayerPieces(graphicsContext, shadowBounds, shadowedRect.radii(), edgeSize, templateSize, OuterShadow);
</span><span class="cx"> 
</span><del>-    m_layerImage = 0;
</del><ins>+    m_layerImage = nullptr;
</ins><span class="cx">     ScratchBuffer::singleton().scheduleScratchBufferPurge();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -816,46 +816,46 @@
</span><span class="cx">     // Top side.
</span><span class="cx">     FloatRect tileRect = FloatRect(leftSlice, 0, templateSideLength, topSlice);
</span><span class="cx">     FloatRect destRect = FloatRect(centerRect.x(), centerRect.y() - topSlice, centerRect.width(), topSlice);
</span><del>-    graphicsContext.drawImageBuffer(m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</del><ins>+    graphicsContext.drawImageBuffer(*m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</ins><span class="cx"> 
</span><span class="cx">     // Draw the bottom side.
</span><span class="cx">     tileRect.setY(templateSize.height() - bottomSlice);
</span><span class="cx">     tileRect.setHeight(bottomSlice);
</span><span class="cx">     destRect.setY(centerRect.maxY());
</span><span class="cx">     destRect.setHeight(bottomSlice);
</span><del>-    graphicsContext.drawImageBuffer(m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</del><ins>+    graphicsContext.drawImageBuffer(*m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</ins><span class="cx"> 
</span><span class="cx">     // Left side.
</span><span class="cx">     tileRect = FloatRect(0, topSlice, leftSlice, templateSideLength);
</span><span class="cx">     destRect = FloatRect(centerRect.x() - leftSlice, centerRect.y(), leftSlice, centerRect.height());
</span><del>-    graphicsContext.drawImageBuffer(m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</del><ins>+    graphicsContext.drawImageBuffer(*m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</ins><span class="cx"> 
</span><span class="cx">     // Right side.
</span><span class="cx">     tileRect.setX(templateSize.width() - rightSlice);
</span><span class="cx">     tileRect.setWidth(rightSlice);
</span><span class="cx">     destRect.setX(centerRect.maxX());
</span><span class="cx">     destRect.setWidth(rightSlice);
</span><del>-    graphicsContext.drawImageBuffer(m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</del><ins>+    graphicsContext.drawImageBuffer(*m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</ins><span class="cx"> 
</span><span class="cx">     // Top left corner.
</span><span class="cx">     tileRect = FloatRect(0, 0, leftSlice, topSlice);
</span><span class="cx">     destRect = FloatRect(centerRect.x() - leftSlice, centerRect.y() - topSlice, leftSlice, topSlice);
</span><del>-    graphicsContext.drawImageBuffer(m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</del><ins>+    graphicsContext.drawImageBuffer(*m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</ins><span class="cx"> 
</span><span class="cx">     // Top right corner.
</span><span class="cx">     tileRect = FloatRect(templateSize.width() - rightSlice, 0, rightSlice, topSlice);
</span><span class="cx">     destRect = FloatRect(centerRect.maxX(), centerRect.y() - topSlice, rightSlice, topSlice);
</span><del>-    graphicsContext.drawImageBuffer(m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</del><ins>+    graphicsContext.drawImageBuffer(*m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</ins><span class="cx"> 
</span><span class="cx">     // Bottom right corner.
</span><span class="cx">     tileRect = FloatRect(templateSize.width() - rightSlice, templateSize.height() - bottomSlice, rightSlice, bottomSlice);
</span><span class="cx">     destRect = FloatRect(centerRect.maxX(), centerRect.maxY(), rightSlice, bottomSlice);
</span><del>-    graphicsContext.drawImageBuffer(m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</del><ins>+    graphicsContext.drawImageBuffer(*m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</ins><span class="cx"> 
</span><span class="cx">     // Bottom left corner.
</span><span class="cx">     tileRect = FloatRect(0, templateSize.height() - bottomSlice, leftSlice, bottomSlice);
</span><span class="cx">     destRect = FloatRect(centerRect.x() - leftSlice, centerRect.maxY(), leftSlice, bottomSlice);
</span><del>-    graphicsContext.drawImageBuffer(m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</del><ins>+    graphicsContext.drawImageBuffer(*m_layerImage, ColorSpaceDeviceRGB, destRect, tileRect);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -915,9 +915,9 @@
</span><span class="cx">     GraphicsContextStateSaver stateSave(context);
</span><span class="cx"> 
</span><span class="cx">     context.clearShadow();
</span><del>-    context.drawImageBuffer(m_layerImage, ColorSpaceDeviceRGB, FloatRect(roundedIntPoint(m_layerOrigin), m_layerSize), FloatRect(FloatPoint(), m_layerSize), context.compositeOperation());
</del><ins>+    context.drawImageBuffer(*m_layerImage, ColorSpaceDeviceRGB, FloatRect(roundedIntPoint(m_layerOrigin), m_layerSize), FloatRect(FloatPoint(), m_layerSize), context.compositeOperation());
</ins><span class="cx"> 
</span><del>-    m_layerImage = 0;
</del><ins>+    m_layerImage = nullptr;
</ins><span class="cx">     ScratchBuffer::singleton().scheduleScratchBufferPurge();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscairoImageBufferCairocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx"> {
</span><span class="cx">     BackingStoreCopy copyMode = &amp;destinationContext == &amp;context() ? CopyBackingStore : DontCopyBackingStore;
</span><span class="cx">     RefPtr&lt;Image&gt; image = copyImage(copyMode);
</span><del>-    destinationContext.drawImage(image.get(), styleColorSpace, destRect, srcRect, ImagePaintingOptions(op, blendMode, ImageOrientationDescription(), useLowQualityScale));
</del><ins>+    destinationContext.drawImage(*image, styleColorSpace, destRect, srcRect, ImagePaintingOptions(op, blendMode, ImageOrientationDescription(), useLowQualityScale));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ImageBuffer::drawPattern(GraphicsContext&amp; context, const FloatRect&amp; srcRect, const AffineTransform&amp; patternTransform,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscgPDFDocumentImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx">         context.setCompositeOperation(op);
</span><span class="cx"> 
</span><span class="cx">         if (m_cachedImageBuffer)
</span><del>-            context.drawImageBuffer(m_cachedImageBuffer.get(), ColorSpaceDeviceRGB, dstRect);
</del><ins>+            context.drawImageBuffer(*m_cachedImageBuffer, ColorSpaceDeviceRGB, dstRect);
</ins><span class="cx">         else {
</span><span class="cx">             transformContextForPainting(context, dstRect, srcRect);
</span><span class="cx">             drawPDFPage(context);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersFEBlendcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/FEBlend.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/FEBlend.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/filters/FEBlend.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -72,11 +72,11 @@
</span><span class="cx"> 
</span><span class="cx">     ImageBuffer* imageBuffer = in-&gt;asImageBuffer();
</span><span class="cx">     ImageBuffer* imageBuffer2 = in2-&gt;asImageBuffer();
</span><del>-    ASSERT(imageBuffer);
-    ASSERT(imageBuffer2);
</del><ins>+    if (!imageBuffer || !imageBuffer2)
+        return;
</ins><span class="cx"> 
</span><del>-    filterContext.drawImageBuffer(imageBuffer2, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in2-&gt;absolutePaintRect()));
-    filterContext.drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()), IntRect(IntPoint(), imageBuffer-&gt;logicalSize()), ImagePaintingOptions(CompositeSourceOver, m_mode));
</del><ins>+    filterContext.drawImageBuffer(*imageBuffer2, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in2-&gt;absolutePaintRect()));
+    filterContext.drawImageBuffer(*imageBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()), IntRect(IntPoint(), imageBuffer-&gt;logicalSize()), ImagePaintingOptions(CompositeSourceOver, m_mode));
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersFEColorMatrixcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -147,7 +147,9 @@
</span><span class="cx">     if (!resultImage)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    resultImage-&gt;context().drawImageBuffer(in-&gt;asImageBuffer(), ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()));
</del><ins>+    ImageBuffer* inBuffer = in-&gt;asImageBuffer();
+    if (inBuffer)
+        resultImage-&gt;context().drawImageBuffer(*inBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()));
</ins><span class="cx"> 
</span><span class="cx">     IntRect imageRect(IntPoint(), resultImage-&gt;logicalSize());
</span><span class="cx">     RefPtr&lt;Uint8ClampedArray&gt; pixelArray = resultImage-&gt;getUnmultipliedImageData(imageRect);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersFECompositecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/FEComposite.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/FEComposite.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/filters/FEComposite.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -276,13 +276,13 @@
</span><span class="cx"> 
</span><span class="cx">     ImageBuffer* imageBuffer = in-&gt;asImageBuffer();
</span><span class="cx">     ImageBuffer* imageBuffer2 = in2-&gt;asImageBuffer();
</span><del>-    ASSERT(imageBuffer);
-    ASSERT(imageBuffer2);
</del><ins>+    if (!imageBuffer || !imageBuffer2)
+        return;
</ins><span class="cx"> 
</span><span class="cx">     switch (m_type) {
</span><span class="cx">     case FECOMPOSITE_OPERATOR_OVER:
</span><del>-        filterContext.drawImageBuffer(imageBuffer2, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in2-&gt;absolutePaintRect()));
-        filterContext.drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()));
</del><ins>+        filterContext.drawImageBuffer(*imageBuffer2, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in2-&gt;absolutePaintRect()));
+        filterContext.drawImageBuffer(*imageBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()));
</ins><span class="cx">         break;
</span><span class="cx">     case FECOMPOSITE_OPERATOR_IN: {
</span><span class="cx">         // Applies only to the intersected region.
</span><span class="lines">@@ -294,21 +294,21 @@
</span><span class="cx">         IntRect adjustedDestinationRect = destinationRect - absolutePaintRect().location();
</span><span class="cx">         IntRect sourceRect = destinationRect - in-&gt;absolutePaintRect().location();
</span><span class="cx">         IntRect source2Rect = destinationRect - in2-&gt;absolutePaintRect().location();
</span><del>-        filterContext.drawImageBuffer(imageBuffer2, ColorSpaceDeviceRGB, adjustedDestinationRect, source2Rect);
-        filterContext.drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, adjustedDestinationRect, sourceRect, CompositeSourceIn);
</del><ins>+        filterContext.drawImageBuffer(*imageBuffer2, ColorSpaceDeviceRGB, adjustedDestinationRect, source2Rect);
+        filterContext.drawImageBuffer(*imageBuffer, ColorSpaceDeviceRGB, adjustedDestinationRect, sourceRect, CompositeSourceIn);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     case FECOMPOSITE_OPERATOR_OUT:
</span><del>-        filterContext.drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()));
-        filterContext.drawImageBuffer(imageBuffer2, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in2-&gt;absolutePaintRect()), IntRect(IntPoint(), imageBuffer2-&gt;logicalSize()), CompositeDestinationOut);
</del><ins>+        filterContext.drawImageBuffer(*imageBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()));
+        filterContext.drawImageBuffer(*imageBuffer2, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in2-&gt;absolutePaintRect()), IntRect(IntPoint(), imageBuffer2-&gt;logicalSize()), CompositeDestinationOut);
</ins><span class="cx">         break;
</span><span class="cx">     case FECOMPOSITE_OPERATOR_ATOP:
</span><del>-        filterContext.drawImageBuffer(imageBuffer2, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in2-&gt;absolutePaintRect()));
-        filterContext.drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()), IntRect(IntPoint(), imageBuffer-&gt;logicalSize()), CompositeSourceAtop);
</del><ins>+        filterContext.drawImageBuffer(*imageBuffer2, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in2-&gt;absolutePaintRect()));
+        filterContext.drawImageBuffer(*imageBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()), IntRect(IntPoint(), imageBuffer-&gt;logicalSize()), CompositeSourceAtop);
</ins><span class="cx">         break;
</span><span class="cx">     case FECOMPOSITE_OPERATOR_XOR:
</span><del>-        filterContext.drawImageBuffer(imageBuffer2, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in2-&gt;absolutePaintRect()));
-        filterContext.drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()), IntRect(IntPoint(), imageBuffer-&gt;logicalSize()), CompositeXOR);
</del><ins>+        filterContext.drawImageBuffer(*imageBuffer2, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in2-&gt;absolutePaintRect()));
+        filterContext.drawImageBuffer(*imageBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()), IntRect(IntPoint(), imageBuffer-&gt;logicalSize()), CompositeXOR);
</ins><span class="cx">         break;
</span><span class="cx">     default:
</span><span class="cx">         break;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersFEDropShadowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/FEDropShadow.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/FEDropShadow.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/filters/FEDropShadow.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -88,10 +88,12 @@
</span><span class="cx">     drawingRegionWithOffset.move(offset);
</span><span class="cx"> 
</span><span class="cx">     ImageBuffer* sourceImage = in-&gt;asImageBuffer();
</span><del>-    ASSERT(sourceImage);
</del><ins>+    if (!sourceImage)
+        return;
+
</ins><span class="cx">     GraphicsContext&amp; resultContext = resultImage-&gt;context();
</span><span class="cx">     resultContext.setAlpha(m_shadowOpacity);
</span><del>-    resultContext.drawImageBuffer(sourceImage, ColorSpaceDeviceRGB, drawingRegionWithOffset);
</del><ins>+    resultContext.drawImageBuffer(*sourceImage, ColorSpaceDeviceRGB, drawingRegionWithOffset);
</ins><span class="cx">     resultContext.setAlpha(1);
</span><span class="cx"> 
</span><span class="cx">     ShadowBlur contextShadow(blurRadius, offset, m_shadowColor, ColorSpaceDeviceRGB);
</span><span class="lines">@@ -108,7 +110,7 @@
</span><span class="cx">     resultContext.fillRect(FloatRect(FloatPoint(), absolutePaintRect().size()), m_shadowColor, ColorSpaceDeviceRGB);
</span><span class="cx">     resultContext.setCompositeOperation(CompositeDestinationOver);
</span><span class="cx"> 
</span><del>-    resultImage-&gt;context().drawImageBuffer(sourceImage, ColorSpaceDeviceRGB, drawingRegion);
</del><ins>+    resultImage-&gt;context().drawImageBuffer(*sourceImage, ColorSpaceDeviceRGB, drawingRegion);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FEDropShadow::dump()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersFEMergecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/FEMerge.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/FEMerge.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/filters/FEMerge.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -47,10 +47,12 @@
</span><span class="cx">     if (!resultImage)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx">     GraphicsContext&amp; filterContext = resultImage-&gt;context();
</span><span class="cx">     for (unsigned i = 0; i &lt; size; ++i) {
</span><span class="cx">         FilterEffect* in = inputEffect(i);
</span><del>-        filterContext.drawImageBuffer(in-&gt;asImageBuffer(), ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()));
</del><ins>+        if (ImageBuffer* inBuffer = in-&gt;asImageBuffer())
+            filterContext.drawImageBuffer(*inBuffer, ColorSpaceDeviceRGB, drawingRegionOfInputImage(in-&gt;absolutePaintRect()));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersFEOffsetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/FEOffset.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/FEOffset.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/filters/FEOffset.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -79,7 +79,8 @@
</span><span class="cx">     FilterEffect* in = inputEffect(0);
</span><span class="cx"> 
</span><span class="cx">     ImageBuffer* resultImage = createImageBufferResult();
</span><del>-    if (!resultImage)
</del><ins>+    ImageBuffer* inBuffer = in-&gt;asImageBuffer();
+    if (!resultImage || !inBuffer)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     setIsAlphaImage(in-&gt;isAlphaImage());
</span><span class="lines">@@ -87,7 +88,7 @@
</span><span class="cx">     FloatRect drawingRegion = drawingRegionOfInputImage(in-&gt;absolutePaintRect());
</span><span class="cx">     Filter&amp; filter = this-&gt;filter();
</span><span class="cx">     drawingRegion.move(filter.applyHorizontalScale(m_dx), filter.applyVerticalScale(m_dy));
</span><del>-    resultImage-&gt;context().drawImageBuffer(in-&gt;asImageBuffer(), ColorSpaceDeviceRGB, drawingRegion);
</del><ins>+    resultImage-&gt;context().drawImageBuffer(*inBuffer, ColorSpaceDeviceRGB, drawingRegion);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FEOffset::dump()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersFETilecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/FETile.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/FETile.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/filters/FETile.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -47,7 +47,8 @@
</span><span class="cx">     FilterEffect* in = inputEffect(0);
</span><span class="cx"> 
</span><span class="cx">     ImageBuffer* resultImage = createImageBufferResult();
</span><del>-    if (!resultImage)
</del><ins>+    ImageBuffer* inBuffer = in-&gt;asImageBuffer();
+    if (!resultImage || !inBuffer)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     setIsAlphaImage(in-&gt;isAlphaImage());
</span><span class="lines">@@ -69,7 +70,7 @@
</span><span class="cx"> 
</span><span class="cx">     GraphicsContext&amp; tileImageContext = tileImage-&gt;context();
</span><span class="cx">     tileImageContext.translate(-inMaxEffectLocation.x(), -inMaxEffectLocation.y());
</span><del>-    tileImageContext.drawImageBuffer(in-&gt;asImageBuffer(), ColorSpaceDeviceRGB, in-&gt;absolutePaintRect().location());
</del><ins>+    tileImageContext.drawImageBuffer(*inBuffer, ColorSpaceDeviceRGB, in-&gt;absolutePaintRect().location());
</ins><span class="cx"> 
</span><span class="cx">     auto tileImageCopy = tileImage-&gt;copyImage(CopyBackingStore);
</span><span class="cx">     if (!tileImageCopy)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersSourceAlphacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/SourceAlpha.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/SourceAlpha.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/filters/SourceAlpha.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -54,11 +54,12 @@
</span><span class="cx">     GraphicsContext&amp; filterContext = resultImage-&gt;context();
</span><span class="cx"> 
</span><span class="cx">     ImageBuffer* imageBuffer = inputEffect(0)-&gt;asImageBuffer();
</span><del>-    ASSERT(imageBuffer);
</del><ins>+    if (!imageBuffer)
+        return;
</ins><span class="cx"> 
</span><span class="cx">     FloatRect imageRect(FloatPoint(), absolutePaintRect().size());
</span><span class="cx">     filterContext.fillRect(imageRect, Color::black, ColorSpaceDeviceRGB);
</span><del>-    filterContext.drawImageBuffer(imageBuffer, ColorSpaceDeviceRGB, IntPoint(), CompositeDestinationIn);
</del><ins>+    filterContext.drawImageBuffer(*imageBuffer, ColorSpaceDeviceRGB, IntPoint(), CompositeDestinationIn);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SourceAlpha::dump()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfiltersSourceGraphiccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/filters/SourceGraphic.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/filters/SourceGraphic.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/filters/SourceGraphic.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -49,12 +49,14 @@
</span><span class="cx"> 
</span><span class="cx"> void SourceGraphic::platformApplySoftware()
</span><span class="cx"> {
</span><ins>+    Filter&amp; filter = this-&gt;filter();
+
</ins><span class="cx">     ImageBuffer* resultImage = createImageBufferResult();
</span><del>-    Filter&amp; filter = this-&gt;filter();
-    if (!resultImage || !filter.sourceImage())
</del><ins>+    ImageBuffer* sourceImage = filter.sourceImage();
+    if (!resultImage || !sourceImage)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    resultImage-&gt;context().drawImageBuffer(filter.sourceImage(), ColorSpaceDeviceRGB, IntPoint());
</del><ins>+    resultImage-&gt;context().drawImageBuffer(*sourceImage, ColorSpaceDeviceRGB, IntPoint());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SourceGraphic::dump()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -525,8 +525,8 @@
</span><span class="cx">     if (!gstImage)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    context.drawImage(reinterpret_cast&lt;Image*&gt;(gstImage-&gt;image().get()), ColorSpaceSRGB,
-        rect, gstImage-&gt;rect(), CompositeCopy);
</del><ins>+    if (Image* image = reinterpret_cast&lt;Image*&gt;(gstImage-&gt;image().get()))
+        context.drawImage(*image, ColorSpaceSRGB, rect, gstImage-&gt;rect(), CompositeCopy);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if USE(TEXTURE_MAPPER_GL) &amp;&amp; !USE(COORDINATED_GRAPHICS)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedImageBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> class ImageBackingSurfaceClient : public CoordinatedSurface::Client {
</span><span class="cx"> public:
</span><del>-    ImageBackingSurfaceClient(Image* image, const IntRect&amp; rect)
</del><ins>+    ImageBackingSurfaceClient(Image&amp; image, const IntRect&amp; rect)
</ins><span class="cx">         : m_image(image)
</span><span class="cx">         , m_rect(rect)
</span><span class="cx">     {
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Image* m_image;
</del><ins>+    Image&amp; m_image;
</ins><span class="cx">     IntRect m_rect;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> 
</span><span class="cx">     IntRect rect(IntPoint::zero(), IntSize(m_image-&gt;size()));
</span><span class="cx"> 
</span><del>-    ImageBackingSurfaceClient surfaceClient(m_image.get(), rect);
</del><ins>+    ImageBackingSurfaceClient surfaceClient(*m_image, rect);
</ins><span class="cx">     m_surface-&gt;paintToSurface(rect, &amp;surfaceClient);
</span><span class="cx"> 
</span><span class="cx">     m_nativeImagePtr = m_image-&gt;nativeImageForCurrentFrame();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ThemeMac.mm (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ThemeMac.mm        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/platform/mac/ThemeMac.mm        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -686,11 +686,13 @@
</span><span class="cx">     if (useImageBuffer) {
</span><span class="cx">         NSRect imageBufferDrawRect = NSRect(FloatRect(buttonFocusRectOutlineWidth, buttonFocusRectOutlineWidth, rect.width(), rect.height()));
</span><span class="cx">         auto imageBuffer = ImageBuffer::createCompatibleBuffer(rect.size() + 2 * FloatSize(buttonFocusRectOutlineWidth, buttonFocusRectOutlineWidth), deviceScaleFactor, ColorSpaceSRGB, context, false);
</span><ins>+        if (!imageBuffer)
+            return needsRepaint;
</ins><span class="cx">         {
</span><span class="cx">             LocalCurrentGraphicsContext localContext(imageBuffer-&gt;context());
</span><span class="cx">             needsRepaint = drawCellOrFocusRingIntoRectWithView(cell, imageBufferDrawRect, view, drawButtonCell, drawFocusRing);
</span><span class="cx">         }
</span><del>-        context.drawImageBuffer(imageBuffer.get(), ColorSpaceSRGB, rect.location() - FloatSize(buttonFocusRectOutlineWidth, buttonFocusRectOutlineWidth));
</del><ins>+        context.drawImageBuffer(*imageBuffer, ColorSpaceSRGB, rect.location() - FloatSize(buttonFocusRectOutlineWidth, buttonFocusRectOutlineWidth));
</ins><span class="cx">         return needsRepaint;
</span><span class="cx">     }
</span><span class="cx">     if (drawButtonCell)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingFilterEffectRenderercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -429,8 +429,10 @@
</span><span class="cx">     LayoutRect destRect = filter-&gt;outputRect();
</span><span class="cx">     destRect.move(m_paintOffset.x(), m_paintOffset.y());
</span><span class="cx"> 
</span><del>-    destinationContext.drawImageBuffer(filter-&gt;output(), m_renderLayer-&gt;renderer().style().colorSpace(),
-        snapRectToDevicePixels(destRect, m_renderLayer-&gt;renderer().document().deviceScaleFactor()));
</del><ins>+    if (ImageBuffer* outputBuffer = filter-&gt;output()) {
+        destinationContext.drawImageBuffer(*outputBuffer, m_renderLayer-&gt;renderer().style().colorSpace(),
+            snapRectToDevicePixels(destRect, m_renderLayer-&gt;renderer().document().deviceScaleFactor()));
+    }
</ins><span class="cx"> 
</span><span class="cx">     filter-&gt;clearIntermediateResults();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingImageQualityControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/ImageQualityController.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/ImageQualityController.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/ImageQualityController.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -99,11 +99,11 @@
</span><span class="cx">     m_timer.startOneShot(cLowQualityTimeThreshold);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool ImageQualityController::shouldPaintAtLowQuality(GraphicsContext&amp; context, RenderBoxModelObject* object, Image* image, const void *layer, const LayoutSize&amp; size)
</del><ins>+bool ImageQualityController::shouldPaintAtLowQuality(GraphicsContext&amp; context, RenderBoxModelObject* object, Image&amp; image, const void *layer, const LayoutSize&amp; size)
</ins><span class="cx"> {
</span><span class="cx">     // If the image is not a bitmap image, then none of this is relevant and we just paint at high
</span><span class="cx">     // quality.
</span><del>-    if (!image || !(image-&gt;isBitmapImage() || image-&gt;isPDFDocumentImage()) || context.paintingDisabled())
</del><ins>+    if (!(image.isBitmapImage() || image.isPDFDocumentImage()) || context.paintingDisabled())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     switch (object-&gt;style().imageRendering()) {
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Make sure to use the unzoomed image size, since if a full page zoom is in effect, the image
</span><span class="cx">     // is actually being scaled.
</span><del>-    IntSize imageSize(image-&gt;width(), image-&gt;height());
</del><ins>+    IntSize imageSize(image.width(), image.height());
</ins><span class="cx"> 
</span><span class="cx">     // Look ourselves up in the hashtables.
</span><span class="cx">     auto i = m_objectLayerSizeMap.find(object);
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx"> 
</span><span class="cx">     // There is no need to hash scaled images that always use low quality mode when the page demands it. This is the iChat case.
</span><span class="cx">     if (m_renderView.frame().page()-&gt;inLowQualityImageInterpolationMode()) {
</span><del>-        double totalPixels = static_cast&lt;double&gt;(image-&gt;width()) * static_cast&lt;double&gt;(image-&gt;height());
</del><ins>+        double totalPixels = static_cast&lt;double&gt;(image.width()) * static_cast&lt;double&gt;(image.height());
</ins><span class="cx">         if (totalPixels &gt; cInterpolationCutoff)
</span><span class="cx">             return true;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingImageQualityControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/ImageQualityController.h (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/ImageQualityController.h        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/ImageQualityController.h        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> public:
</span><span class="cx">     explicit ImageQualityController(const RenderView&amp;);
</span><span class="cx"> 
</span><del>-    bool shouldPaintAtLowQuality(GraphicsContext&amp;, RenderBoxModelObject*, Image*, const void* layer, const LayoutSize&amp;);
</del><ins>+    bool shouldPaintAtLowQuality(GraphicsContext&amp;, RenderBoxModelObject*, Image&amp;, const void* layer, const LayoutSize&amp;);
</ins><span class="cx">     void rendererWillBeDestroyed(RenderBoxModelObject&amp; renderer) { removeObject(&amp;renderer); }
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">     layer()-&gt;backing()-&gt;suspendAnimations(time);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool RenderBoxModelObject::shouldPaintAtLowQuality(GraphicsContext&amp; context, Image* image, const void* layer, const LayoutSize&amp; size)
</del><ins>+bool RenderBoxModelObject::shouldPaintAtLowQuality(GraphicsContext&amp; context, Image&amp; image, const void* layer, const LayoutSize&amp; size)
</ins><span class="cx"> {
</span><span class="cx">     return view().imageQualityController().shouldPaintAtLowQuality(context, this, image, layer, size);
</span><span class="cx"> }
</span><span class="lines">@@ -830,18 +830,17 @@
</span><span class="cx">     if (!baseBgColorOnly &amp;&amp; shouldPaintBackgroundImage) {
</span><span class="cx">         BackgroundImageGeometry geometry = calculateBackgroundImageGeometry(paintInfo.paintContainer, *bgLayer, rect.location(), scrolledPaintRect, backgroundObject);
</span><span class="cx">         geometry.clip(LayoutRect(pixelSnappedRect));
</span><del>-        if (!geometry.destRect().isEmpty()) {
</del><ins>+        RefPtr&lt;Image&gt; image;
+        if (!geometry.destRect().isEmpty() &amp;&amp; (image = bgImage-&gt;image(backgroundObject ? backgroundObject : this, geometry.tileSize()))) {
</ins><span class="cx">             CompositeOperator compositeOp = op == CompositeSourceOver ? bgLayer-&gt;composite() : op;
</span><del>-            auto clientForBackgroundImage = backgroundObject ? backgroundObject : this;
-            RefPtr&lt;Image&gt; image = bgImage-&gt;image(clientForBackgroundImage, geometry.tileSize());
</del><span class="cx">             context.setDrawLuminanceMask(bgLayer-&gt;maskSourceType() == MaskLuminance);
</span><del>-            bool useLowQualityScaling = shouldPaintAtLowQuality(context, image.get(), bgLayer, geometry.tileSize());
-            context.drawTiledImage(image.get(), style().colorSpace(), geometry.destRect(), toLayoutPoint(geometry.relativePhase()), geometry.tileSize(), geometry.spaceSize(), ImagePaintingOptions(compositeOp, bgLayer-&gt;blendMode(), ImageOrientationDescription(), useLowQualityScaling));
</del><ins>+            bool useLowQualityScaling = shouldPaintAtLowQuality(context, *image, bgLayer, geometry.tileSize());
+            context.drawTiledImage(*image, style().colorSpace(), geometry.destRect(), toLayoutPoint(geometry.relativePhase()), geometry.tileSize(), geometry.spaceSize(), ImagePaintingOptions(compositeOp, bgLayer-&gt;blendMode(), ImageOrientationDescription(), useLowQualityScaling));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (bgLayer-&gt;clip() == TextFillBox) {
-        context.drawImageBuffer(maskImage.get(), ColorSpaceDeviceRGB, maskRect, CompositeDestinationIn);
</del><ins>+    if (maskImage &amp;&amp; bgLayer-&gt;clip() == TextFillBox) {
+        context.drawImageBuffer(*maskImage, ColorSpaceDeviceRGB, maskRect, CompositeDestinationIn);
</ins><span class="cx">         context.endTransparencyLayer();
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.h (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.h        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.h        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -251,7 +251,7 @@
</span><span class="cx">     RoundedRect backgroundRoundedRectAdjustedForBleedAvoidance(const GraphicsContext&amp;, const LayoutRect&amp;, BackgroundBleedAvoidance, InlineFlowBox*, const LayoutSize&amp;, bool includeLogicalLeftEdge, bool includeLogicalRightEdge) const;
</span><span class="cx">     LayoutRect borderInnerRectAdjustedForBleedAvoidance(const GraphicsContext&amp;, const LayoutRect&amp;, BackgroundBleedAvoidance) const;
</span><span class="cx"> 
</span><del>-    bool shouldPaintAtLowQuality(GraphicsContext&amp;, Image*, const void*, const LayoutSize&amp;);
</del><ins>+    bool shouldPaintAtLowQuality(GraphicsContext&amp;, Image&amp;, const void*, const LayoutSize&amp;);
</ins><span class="cx"> 
</span><span class="cx">     RenderBoxModelObject* continuation() const;
</span><span class="cx">     void setContinuation(RenderBoxModelObject*);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderEmbeddedObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -197,7 +197,7 @@
</span><span class="cx">     repaint();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderEmbeddedObject::paintSnapshotImage(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset, Image* image)
</del><ins>+void RenderEmbeddedObject::paintSnapshotImage(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset, Image&amp; image)
</ins><span class="cx"> {
</span><span class="cx">     LayoutUnit cWidth = contentWidth();
</span><span class="cx">     LayoutUnit cHeight = contentHeight();
</span><span class="lines">@@ -214,7 +214,7 @@
</span><span class="cx">     if (alignedRect.width() &lt;= 0 || alignedRect.height() &lt;= 0)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    bool useLowQualityScaling = shouldPaintAtLowQuality(context, image, image, alignedRect.size());
</del><ins>+    bool useLowQualityScaling = shouldPaintAtLowQuality(context, image, &amp;image, alignedRect.size());
</ins><span class="cx">     ImageOrientationDescription orientationDescription(shouldRespectImageOrientation());
</span><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><span class="cx">     orientationDescription.setImageOrientationEnum(style().imageOrientation());
</span><span class="lines">@@ -239,7 +239,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (Image* snapshot = downcast&lt;HTMLPlugInImageElement&gt;(plugInElement).snapshotImage())
</span><del>-        paintSnapshotImage(paintInfo, paintOffset, snapshot);
</del><ins>+        paintSnapshotImage(paintInfo, paintOffset, *snapshot);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderEmbeddedObject::paint(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderEmbeddedObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.h (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.h        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.h        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx">     virtual const char* renderName() const override { return &quot;RenderEmbeddedObject&quot;; }
</span><span class="cx">     virtual bool isEmbeddedObject() const override final { return true; }
</span><span class="cx"> 
</span><del>-    void paintSnapshotImage(PaintInfo&amp;, const LayoutPoint&amp;, Image*);
</del><ins>+    void paintSnapshotImage(PaintInfo&amp;, const LayoutPoint&amp;, Image&amp;);
</ins><span class="cx">     virtual void paintContents(PaintInfo&amp;, const LayoutPoint&amp;) override final;
</span><span class="cx"> 
</span><span class="cx">     virtual bool requiresLayer() const override final;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderImage.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderImage.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderImage.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -424,7 +424,7 @@
</span><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><span class="cx">                 orientationDescription.setImageOrientationEnum(style().imageOrientation());
</span><span class="cx"> #endif
</span><del>-                context.drawImage(image.get(), style().colorSpace(), snapRectToDevicePixels(LayoutRect(paintOffset + imageOffset, imageSize), deviceScaleFactor), orientationDescription);
</del><ins>+                context.drawImage(*image, style().colorSpace(), snapRectToDevicePixels(LayoutRect(paintOffset + imageOffset, imageSize), deviceScaleFactor), orientationDescription);
</ins><span class="cx">                 errorPictureDrawn = true;
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="lines">@@ -548,12 +548,12 @@
</span><span class="cx">     HTMLImageElement* imageElement = is&lt;HTMLImageElement&gt;(element()) ? downcast&lt;HTMLImageElement&gt;(element()) : nullptr;
</span><span class="cx">     CompositeOperator compositeOperator = imageElement ? imageElement-&gt;compositeOperator() : CompositeSourceOver;
</span><span class="cx">     Image* image = imageResource().image().get();
</span><del>-    bool useLowQualityScaling = shouldPaintAtLowQuality(context, image, image, LayoutSize(rect.size()));
</del><ins>+    bool useLowQualityScaling = image &amp;&amp; shouldPaintAtLowQuality(context, *image, image, LayoutSize(rect.size()));
</ins><span class="cx">     ImageOrientationDescription orientationDescription(shouldRespectImageOrientation());
</span><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><span class="cx">     orientationDescription.setImageOrientationEnum(style().imageOrientation());
</span><span class="cx"> #endif
</span><del>-    context.drawImage(imageResource().image(rect.width(), rect.height()).get(), style().colorSpace(), rect,
</del><ins>+    context.drawImage(*img, style().colorSpace(), rect,
</ins><span class="cx">         ImagePaintingOptions(compositeOperator, BlendModeNormal, orientationDescription, useLowQualityScaling));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderImageResourceStyleImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderImageResourceStyleImage.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderImageResourceStyleImage.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderImageResourceStyleImage.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -57,14 +57,14 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_renderer);
</span><span class="cx">     m_styleImage-&gt;removeClient(m_renderer);
</span><del>-    m_cachedImage = 0;
</del><ins>+    m_cachedImage = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;Image&gt; RenderImageResourceStyleImage::image(int width, int height) const
</span><span class="cx"> {
</span><span class="cx">     // Generated content may trigger calls to image() while we're still pending, don't assert but gracefully exit.
</span><span class="cx">     if (m_styleImage-&gt;isPendingImage())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     return m_styleImage-&gt;image(m_renderer, IntSize(width, height));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -3655,12 +3655,16 @@
</span><span class="cx">         context.save();
</span><span class="cx">         context.translate(resizerCornerRect.x() + cornerResizerSize.width(), resizerCornerRect.y() + resizerCornerRect.height() - cornerResizerSize.height());
</span><span class="cx">         context.scale(FloatSize(-1.0, 1.0));
</span><del>-        context.drawImage(resizeCornerImage.get(), renderer().style().colorSpace(), FloatRect(FloatPoint(), cornerResizerSize));
</del><ins>+        if (resizeCornerImage)
+            context.drawImage(*resizeCornerImage, renderer().style().colorSpace(), FloatRect(FloatPoint(), cornerResizerSize));
</ins><span class="cx">         context.restore();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><ins>+    
+    if (!resizeCornerImage)
+        return;
</ins><span class="cx">     FloatRect imageRect = snapRectToDevicePixels(LayoutRect(resizerCornerRect.maxXMaxYCorner() - cornerResizerSize, cornerResizerSize), renderer().document().deviceScaleFactor());
</span><del>-    context.drawImage(resizeCornerImage.get(), renderer().style().colorSpace(), imageRect);
</del><ins>+    context.drawImage(*resizeCornerImage, renderer().style().colorSpace(), imageRect);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderLayer::paintResizer(GraphicsContext&amp; context, const LayoutPoint&amp; paintOffset, const LayoutRect&amp; damageRect)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderListMarkercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderListMarker.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderListMarker.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderListMarker.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -1197,7 +1197,8 @@
</span><span class="cx">     GraphicsContext&amp; context = paintInfo.context();
</span><span class="cx"> 
</span><span class="cx">     if (isImage()) {
</span><del>-        context.drawImage(m_image-&gt;image(this, marker.size()).get(), style().colorSpace(), marker);
</del><ins>+        if (RefPtr&lt;Image&gt; markerImage = m_image-&gt;image(this, marker.size()))
+            context.drawImage(*markerImage, style().colorSpace(), marker);
</ins><span class="cx">         if (selectionState() != SelectionNone) {
</span><span class="cx">             LayoutRect selRect = localSelectionRect();
</span><span class="cx">             selRect.moveBy(boxOrigin);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderSnapshottedPlugIncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -135,13 +135,13 @@
</span><span class="cx">     if (alignedRect.width() &lt;= 0 || alignedRect.height() &lt;= 0)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    bool useLowQualityScaling = shouldPaintAtLowQuality(context, image, image, alignedRect.size());
</del><ins>+    bool useLowQualityScaling = shouldPaintAtLowQuality(context, *image, image, alignedRect.size());
</ins><span class="cx"> 
</span><span class="cx">     ImageOrientationDescription orientationDescription(shouldRespectImageOrientation());
</span><span class="cx"> #if ENABLE(CSS_IMAGE_ORIENTATION)
</span><span class="cx">     orientationDescription.setImageOrientationEnum(style().imageOrientation());
</span><span class="cx"> #endif
</span><del>-    context.drawImage(image, style().colorSpace(), alignedRect, ImagePaintingOptions(orientationDescription, useLowQualityScaling));
</del><ins>+    context.drawImage(*image, style().colorSpace(), alignedRect, ImagePaintingOptions(orientationDescription, useLowQualityScaling));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> CursorDirective RenderSnapshottedPlugIn::getCursor(const LayoutPoint&amp; point, Cursor&amp; overrideCursor) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeMac.mm        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -1158,7 +1158,7 @@
</span><span class="cx">         paintInfo.context().scale(FloatSize(-1, 1));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    paintInfo.context().drawImageBuffer(imageBuffer.get(), ColorSpaceDeviceRGB, inflatedRect.location());
</del><ins>+    paintInfo.context().drawImageBuffer(*imageBuffer, ColorSpaceDeviceRGB, inflatedRect.location());
</ins><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1912,7 +1912,7 @@
</span><span class="cx">     if (alignedPluginRect.width() &lt;= 0 || alignedPluginRect.height() &lt;= 0)
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    context.drawImage(snapshot, plugInRenderer.style().colorSpace(), alignedPluginRect, CompositeSourceOver);
</del><ins>+    context.drawImage(*snapshot, plugInRenderer.style().colorSpace(), alignedPluginRect, CompositeSourceOver);
</ins><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeWin.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeWin.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/RenderThemeWin.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -892,7 +892,7 @@
</span><span class="cx"> 
</span><span class="cx">     static Image* cancelImage = Image::loadPlatformResource(&quot;searchCancel&quot;).leakRef();
</span><span class="cx">     static Image* cancelPressedImage = Image::loadPlatformResource(&quot;searchCancelPressed&quot;).leakRef();
</span><del>-    paintInfo.context().drawImage(isPressed(o) ? cancelPressedImage : cancelImage, o.style().colorSpace(), bounds);
</del><ins>+    paintInfo.context().drawImage(isPressed(o) ? *cancelPressedImage : *cancelImage, o.style().colorSpace(), bounds);
</ins><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -940,7 +940,7 @@
</span><span class="cx">     bounds.setY(parentBox.y() + (parentBox.height() - bounds.height() + 1) / 2);
</span><span class="cx">     
</span><span class="cx">     static Image* magnifierImage = Image::loadPlatformResource(&quot;searchMagnifier&quot;).leakRef();
</span><del>-    paintInfo.context().drawImage(magnifierImage, o.style().colorSpace(), bounds);
</del><ins>+    paintInfo.context().drawImage(*magnifierImage, o.style().colorSpace(), bounds);
</ins><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -975,7 +975,7 @@
</span><span class="cx">     bounds.setY(parentBox.y() + (parentBox.height() - bounds.height() + 1) / 2);
</span><span class="cx"> 
</span><span class="cx">     static Image* magnifierImage = Image::loadPlatformResource(&quot;searchMagnifierResults&quot;).leakRef();
</span><del>-    paintInfo.context().drawImage(magnifierImage, o.style().colorSpace(), bounds);
</del><ins>+    paintInfo.context().drawImage(*magnifierImage, o.style().colorSpace(), bounds);
</ins><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingshapesShapecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/shapes/Shape.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/shapes/Shape.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/shapes/Shape.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -184,7 +184,8 @@
</span><span class="cx"> 
</span><span class="cx">     if (imageBuffer) {
</span><span class="cx">         GraphicsContext&amp; graphicsContext = imageBuffer-&gt;context();
</span><del>-        graphicsContext.drawImage(image, ColorSpaceDeviceRGB, IntRect(IntPoint(), imageRect.size()));
</del><ins>+        if (image)
+            graphicsContext.drawImage(*image, ColorSpaceDeviceRGB, IntRect(IntPoint(), imageRect.size()));
</ins><span class="cx"> 
</span><span class="cx">         RefPtr&lt;Uint8ClampedArray&gt; pixelArray = imageBuffer-&gt;getUnmultipliedImageData(IntRect(IntPoint(), imageRect.size()));
</span><span class="cx">         unsigned pixelArrayLength = pixelArray-&gt;length();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingshapesShapeOutsideInfocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -158,7 +158,6 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(!styleImage-&gt;isPendingImage());
</span><span class="cx">     RefPtr&lt;Image&gt; image = styleImage-&gt;image(const_cast&lt;RenderBox*&gt;(&amp;m_renderer), imageSize);
</span><del>-
</del><span class="cx">     return Shape::createRasterShape(image.get(), shapeImageThreshold, imageRect, marginRect, writingMode, margin);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleNinePieceImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/NinePieceImage.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/NinePieceImage.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/style/NinePieceImage.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -206,6 +206,9 @@
</span><span class="cx">     Vector&lt;FloatSize&gt; tileScales = computeTileScales(destinationRects, sourceRects, horizontalRule(), verticalRule());
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Image&gt; image = styleImage-&gt;image(renderer, source);
</span><ins>+    if (!image)
+        return;
+
</ins><span class="cx">     ColorSpace colorSpace = style.colorSpace();
</span><span class="cx"> 
</span><span class="cx">     for (ImagePiece piece = MinPiece; piece &lt; MaxPiece; ++piece) {
</span><span class="lines">@@ -213,13 +216,13 @@
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         if (isCornerPiece(piece)) {
</span><del>-            graphicsContext.drawImage(image.get(), colorSpace, destinationRects[piece], sourceRects[piece], op);
</del><ins>+            graphicsContext.drawImage(*image, colorSpace, destinationRects[piece], sourceRects[piece], op);
</ins><span class="cx">             continue;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         Image::TileRule hRule = isHorizontalPiece(piece) ? static_cast&lt;Image::TileRule&gt;(horizontalRule()) : Image::StretchTile;
</span><span class="cx">         Image::TileRule vRule = isVerticalPiece(piece) ? static_cast&lt;Image::TileRule&gt;(verticalRule()) : Image::StretchTile;
</span><del>-        graphicsContext.drawTiledImage(image.get(), colorSpace, destinationRects[piece], sourceRects[piece], tileScales[piece], hRule, vRule, op);
</del><ins>+        graphicsContext.drawTiledImage(*image, colorSpace, destinationRects[piece], sourceRects[piece], tileScales[piece], hRule, vRule, op);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -161,12 +161,15 @@
</span><span class="cx"> void RenderSVGImage::paintForeground(PaintInfo&amp; paintInfo)
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Image&gt; image = imageResource().image();
</span><ins>+    if (!image)
+        return;
+
</ins><span class="cx">     FloatRect destRect = m_objectBoundingBox;
</span><span class="cx">     FloatRect srcRect(0, 0, image-&gt;width(), image-&gt;height());
</span><span class="cx"> 
</span><span class="cx">     imageElement().preserveAspectRatio().transformRect(destRect, srcRect);
</span><span class="cx"> 
</span><del>-    paintInfo.context().drawImage(image.get(), ColorSpaceDeviceRGB, destRect, srcRect);
</del><ins>+    paintInfo.context().drawImage(*image, ColorSpaceDeviceRGB, destRect, srcRect);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderSVGImage::invalidateBufferedForeground()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGResourceFiltercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -270,7 +270,7 @@
</span><span class="cx">             context-&gt;concatCTM(filterData-&gt;shearFreeAbsoluteTransform.inverse());
</span><span class="cx"> 
</span><span class="cx">             context-&gt;scale(FloatSize(1 / filterData-&gt;filter-&gt;filterResolution().width(), 1 / filterData-&gt;filter-&gt;filterResolution().height()));
</span><del>-            context-&gt;drawImageBuffer(resultImage, renderer.style().colorSpace(), lastEffect-&gt;absolutePaintRect());
</del><ins>+            context-&gt;drawImageBuffer(*resultImage, renderer.style().colorSpace(), lastEffect-&gt;absolutePaintRect());
</ins><span class="cx">             context-&gt;scale(filterData-&gt;filter-&gt;filterResolution());
</span><span class="cx"> 
</span><span class="cx">             context-&gt;concatCTM(filterData-&gt;shearFreeAbsoluteTransform);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGRenderingContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -309,14 +309,15 @@
</span><span class="cx"> 
</span><span class="cx"> void SVGRenderingContext::clipToImageBuffer(GraphicsContext&amp; context, const AffineTransform&amp; absoluteTransform, const FloatRect&amp; targetRect, std::unique_ptr&lt;ImageBuffer&gt;&amp; imageBuffer, bool safeToClear)
</span><span class="cx"> {
</span><del>-    ASSERT(imageBuffer);
</del><ins>+    if (!imageBuffer)
+        return;
</ins><span class="cx"> 
</span><span class="cx">     FloatRect absoluteTargetRect = calculateImageBufferRect(targetRect, absoluteTransform);
</span><span class="cx"> 
</span><span class="cx">     // The mask image has been created in the absolute coordinate space, as the image should not be scaled.
</span><span class="cx">     // So the actual masking process has to be done in the absolute coordinate space as well.
</span><span class="cx">     context.concatCTM(absoluteTransform.inverse());
</span><del>-    context.clipToImageBuffer(imageBuffer.get(), absoluteTargetRect);
</del><ins>+    context.clipToImageBuffer(*imageBuffer, absoluteTargetRect);
</ins><span class="cx">     context.concatCTM(absoluteTransform);
</span><span class="cx"> 
</span><span class="cx">     // When nesting resources, with objectBoundingBox as content unit types, there's no use in caching the
</span><span class="lines">@@ -360,7 +361,7 @@
</span><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_paintInfo-&gt;context().drawImageBuffer(imageBuffer.get(), ColorSpaceDeviceRGB, boundingBox);
</del><ins>+    m_paintInfo-&gt;context().drawImageBuffer(*imageBuffer, ColorSpaceDeviceRGB, boundingBox);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoresvggraphicsfiltersSVGFEImagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    resultImage-&gt;context().drawImage(m_image.get(), ColorSpaceDeviceRGB, destRect, srcRect);
</del><ins>+    resultImage-&gt;context().drawImage(*m_image, ColorSpaceDeviceRGB, destRect, srcRect);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FEImage::dump()
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebKit/win/ChangeLog        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2015-10-14  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Change GraphicsContext image-drawing functions to take references
+        https://bugs.webkit.org/show_bug.cgi?id=150108
+
+        Reviewed by Tim Horton and Sam Weinig.
+
+        Change GraphicsContext::drawImage(), drawTiledImage(), drawImageBuffer(), clipToImageBuffer()
+        and isCompatibleWithBuffer() to take references, and adjust calling code, adding
+        null-checks where necessary.
+
+        * FullscreenVideoController.cpp:
+        (HUDButton::draw):
+        * Plugins/PluginView.cpp:
+        (WebCore::PluginView::paintMissingPluginIcon):
+
</ins><span class="cx"> 2015-10-09  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Don't allow plug-ins to override image types for &lt;embed&gt; elements
</span></span></pre></div>
<a id="trunkSourceWebKitwinFullscreenVideoControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/FullscreenVideoController.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/FullscreenVideoController.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebKit/win/FullscreenVideoController.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx"> void HUDButton::draw(GraphicsContext&amp; context)
</span><span class="cx"> {
</span><span class="cx">     Image* image = (m_showAltButton &amp;&amp; m_buttonImageAlt) ? m_buttonImageAlt.get() : m_buttonImage.get();
</span><del>-    context.drawImage(image, ColorSpaceDeviceRGB, m_rect.location());
</del><ins>+    context.drawImage(*image, ColorSpaceDeviceRGB, m_rect.location());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HUDSlider::HUDSlider(HUDSliderButtonShape shape, int buttonSize, const IntRect&amp; rect)
</span></span></pre></div>
<a id="trunkSourceWebKitwinPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/Plugins/PluginView.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/Plugins/PluginView.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebKit/win/Plugins/PluginView.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -1122,7 +1122,7 @@
</span><span class="cx"> 
</span><span class="cx">     context.save();
</span><span class="cx">     context.clip(windowClipRect());
</span><del>-    context.drawImage(nullPluginImage.get(), ColorSpaceDeviceRGB, imageRect.location());
</del><ins>+    context.drawImage(*nullPluginImage, ColorSpaceDeviceRGB, imageRect.location());
</ins><span class="cx">     context.restore();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebKit2/ChangeLog        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2015-10-14  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Change GraphicsContext image-drawing functions to take references
+        https://bugs.webkit.org/show_bug.cgi?id=150108
+
+        Reviewed by Tim Horton and Sam Weinig.
+
+        Change GraphicsContext::drawImage(), drawTiledImage(), drawImageBuffer(), clipToImageBuffer()
+        and isCompatibleWithBuffer() to take references, and adjust calling code, adding
+        null-checks where necessary.
+
+        * Shared/ContextMenuContextData.cpp:
+        (WebKit::ContextMenuContextData::ContextMenuContextData):
+        * Shared/WebCoreArgumentCoders.cpp:
+        (IPC::encodeImage):
+        (IPC::encodeOptionalImage):
+        (IPC::ArgumentCoder&lt;Cursor&gt;::encode):
+        * WebProcess/WebPage/WebFrame.cpp:
+        (WebKit::WebFrame::createSelectionSnapshot):
+
</ins><span class="cx"> 2015-10-14  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Change the bundle app cache APIs to take a page
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedContextMenuContextDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/ContextMenuContextData.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/ContextMenuContextData.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebKit2/Shared/ContextMenuContextData.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: figure out the rounding startegy for ShareableBitmap.
</span><span class="cx">     m_controlledImage = ShareableBitmap::createShareable(IntSize(image-&gt;size()), ShareableBitmap::SupportsAlpha);
</span><del>-    m_controlledImage-&gt;createGraphicsContext()-&gt;drawImage(image, ColorSpaceDeviceRGB, IntPoint());
</del><ins>+    m_controlledImage-&gt;createGraphicsContext()-&gt;drawImage(*image, ColorSpaceDeviceRGB, IntPoint());
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebCoreArgumentCoderscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -721,9 +721,9 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void encodeImage(ArgumentEncoder&amp; encoder, Image* image)
</del><ins>+static void encodeImage(ArgumentEncoder&amp; encoder, Image&amp; image)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;ShareableBitmap&gt; bitmap = ShareableBitmap::createShareable(IntSize(image-&gt;size()), ShareableBitmap::SupportsAlpha);
</del><ins>+    RefPtr&lt;ShareableBitmap&gt; bitmap = ShareableBitmap::createShareable(IntSize(image.size()), ShareableBitmap::SupportsAlpha);
</ins><span class="cx">     bitmap-&gt;createGraphicsContext()-&gt;drawImage(image, ColorSpaceDeviceRGB, IntPoint());
</span><span class="cx"> 
</span><span class="cx">     ShareableBitmap::Handle handle;
</span><span class="lines">@@ -753,7 +753,7 @@
</span><span class="cx">     encoder &lt;&lt; hasImage;
</span><span class="cx"> 
</span><span class="cx">     if (hasImage)
</span><del>-        encodeImage(encoder, image);
</del><ins>+        encodeImage(encoder, *image);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool decodeOptionalImage(ArgumentDecoder&amp; decoder, RefPtr&lt;Image&gt;&amp; image)
</span><span class="lines">@@ -784,7 +784,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     encoder &lt;&lt; true;
</span><del>-    encodeImage(encoder, cursor.image());
</del><ins>+    encodeImage(encoder, *cursor.image());
</ins><span class="cx">     encoder &lt;&lt; cursor.hotSpot();
</span><span class="cx"> #if ENABLE(MOUSE_CURSOR_SCALE)
</span><span class="cx">     encoder &lt;&lt; cursor.imageScaleFactor();
</span><span class="lines">@@ -1253,7 +1253,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ArgumentCoder&lt;PasteboardImage&gt;::encode(ArgumentEncoder&amp; encoder, const PasteboardImage&amp; pasteboardImage)
</span><span class="cx"> {
</span><del>-    encodeImage(encoder, pasteboardImage.image.get());
</del><ins>+    encodeOptionalImage(encoder, pasteboardImage.image.get());
</ins><span class="cx">     encoder &lt;&lt; pasteboardImage.url.url;
</span><span class="cx">     encoder &lt;&lt; pasteboardImage.url.title;
</span><span class="cx">     encoder &lt;&lt; pasteboardImage.resourceMIMEType;
</span><span class="lines">@@ -1263,7 +1263,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool ArgumentCoder&lt;PasteboardImage&gt;::decode(ArgumentDecoder&amp; decoder, PasteboardImage&amp; pasteboardImage)
</span><span class="cx"> {
</span><del>-    if (!decodeImage(decoder, pasteboardImage.image))
</del><ins>+    if (!decodeOptionalImage(decoder, pasteboardImage.image))
</ins><span class="cx">         return false;
</span><span class="cx">     if (!decoder.decode(pasteboardImage.url.url))
</span><span class="cx">         return false;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -838,7 +838,7 @@
</span><span class="cx">     auto graphicsContext = sharedSnapshot-&gt;createGraphicsContext();
</span><span class="cx">     float deviceScaleFactor = coreFrame()-&gt;page()-&gt;deviceScaleFactor();
</span><span class="cx">     graphicsContext-&gt;scale(FloatSize(deviceScaleFactor, deviceScaleFactor));
</span><del>-    graphicsContext-&gt;drawImageBuffer(snapshot.get(), ColorSpaceDeviceRGB, FloatPoint());
</del><ins>+    graphicsContext-&gt;drawImageBuffer(*snapshot, ColorSpaceDeviceRGB, FloatPoint());
</ins><span class="cx"> 
</span><span class="cx">     return sharedSnapshot.release();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageiosFindControllerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/FindControllerIOS.mm (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/ios/FindControllerIOS.mm        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/FindControllerIOS.mm        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     for (const auto&amp; path : paths)
</span><span class="cx">         context.fillPath(path);
</span><span class="cx"> 
</span><del>-    context.drawImage(indicatorImage, ColorSpaceDeviceRGB, overlay.bounds());
</del><ins>+    context.drawImage(*indicatorImage, ColorSpaceDeviceRGB, overlay.bounds());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool FindController::updateFindIndicator(Frame&amp; selectedFrame, bool isShowingOverlay, bool shouldAnimate)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageiosWebPageIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm (191048 => 191049)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm        2015-10-14 17:29:18 UTC (rev 191048)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm        2015-10-14 18:10:32 UTC (rev 191049)
</span><span class="lines">@@ -2218,7 +2218,7 @@
</span><span class="cx">                                 FloatSize bitmapSize = scaledSize.width() &lt; image-&gt;size().width() ? scaledSize : image-&gt;size();
</span><span class="cx">                                 if (RefPtr&lt;ShareableBitmap&gt; sharedBitmap = ShareableBitmap::createShareable(IntSize(bitmapSize), ShareableBitmap::SupportsAlpha)) {
</span><span class="cx">                                     auto graphicsContext = sharedBitmap-&gt;createGraphicsContext();
</span><del>-                                    graphicsContext-&gt;drawImage(image, ColorSpaceDeviceRGB, FloatRect(0, 0, bitmapSize.width(), bitmapSize.height()));
</del><ins>+                                    graphicsContext-&gt;drawImage(*image, ColorSpaceDeviceRGB, FloatRect(0, 0, bitmapSize.width(), bitmapSize.height()));
</ins><span class="cx">                                     info.image = sharedBitmap;
</span><span class="cx">                                 }
</span><span class="cx">                             }
</span></span></pre>
</div>
</div>

</body>
</html>