Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0072dcd9a13bfa4235b0184fe629e657a60c9b4a https://github.com/WebKit/WebKit/commit/0072dcd9a13bfa4235b0184fe629e657a60c9b4a Author: Kimmo Kinnunen <kkinnu...@apple.com> Date: 2023-02-23 (Thu, 23 Feb 2023)
Changed paths: M Source/WebCore/platform/graphics/ImageBufferBackend.cpp M Source/WebCore/platform/graphics/ImageBufferBackend.h M Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h M Source/WebCore/platform/graphics/cocoa/IOSurface.h M Source/WebCore/platform/graphics/cocoa/IOSurface.mm Log Message: ----------- ImageBufferIOSurfaceBackend context setup and teardown functions are redundant and error-prone https://bugs.webkit.org/show_bug.cgi?id=240452 rdar://93412550 Reviewed by Simon Fraser. Make all ImageBufferCGBackend hold the GraphicsContextCG. Avoid holding GraphicsContext in IOSurface, as the only caller was ImageBufferIOSurfaceBackend. ImageBufferBackend::applyBaseTransformToContext() invoked a virtual function context(). This was called from the middle of the inheritance chain, from a constructor. If a class later in the inheritance chain would override context(), the call would not be invoked correctly. Currently no class suffered from this, but in future some might. ImageBufferIOSurfaceBackend call to applyBaseTransformToContext() would also recurse through context() back to applyBaseTransformToContext() in non-intuitive way through overridden ::context() which would re-enter applyBaseTransformToContext(). Based on current knowledge doubly invoking the logic did not cause any harm. * Source/WebCore/platform/graphics/ImageBufferBackend.cpp: (WebCore::ImageBufferBackend::applyBaseTransformToContext const): Deleted. * Source/WebCore/platform/graphics/ImageBufferBackend.h: * Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp: (WebCore::IOSurfacePool::willAddSurface): * Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp: (WebCore::ImageBufferCGBackend::applyBaseTransform const): * Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h: * Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp: (WebCore::ImageBufferCGBitmapBackend::ImageBufferCGBitmapBackend): * Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h: * Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp: (WebCore::ImageBufferIOSurfaceBackend::ImageBufferIOSurfaceBackend): (WebCore::ImageBufferIOSurfaceBackend::context const): (WebCore::ImageBufferIOSurfaceBackend::releaseGraphicsContext): * Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h: * Source/WebCore/platform/graphics/cocoa/IOSurface.h: * Source/WebCore/platform/graphics/cocoa/IOSurface.mm: (WebCore::IOSurface::create): (WebCore::IOSurface::releasePlatformContext): (WebCore::IOSurface::ensureGraphicsContext): Deleted. (WebCore::IOSurface::releaseGraphicsContext): Deleted. Canonical link: https://commits.webkit.org/260734@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes