Title: [225946] trunk/Source/WebCore
- Revision
- 225946
- Author
- simon.fra...@apple.com
- Date
- 2017-12-14 17:01:47 -0800 (Thu, 14 Dec 2017)
Log Message
Fix Windows build after r225915.
Windows doens't have dispatch_once with blocks. Switch to use lambda functions instead.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::sRGBColorSpaceRef):
(WebCore::linearRGBColorSpaceRef):
(WebCore::extendedSRGBColorSpaceRef):
(WebCore::displayP3ColorSpaceRef):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (225945 => 225946)
--- trunk/Source/WebCore/ChangeLog 2017-12-15 01:00:04 UTC (rev 225945)
+++ trunk/Source/WebCore/ChangeLog 2017-12-15 01:01:47 UTC (rev 225946)
@@ -1,3 +1,15 @@
+2017-12-14 Simon Fraser <simon.fra...@apple.com>
+
+ Fix Windows build after r225915.
+
+ Windows doens't have dispatch_once with blocks. Switch to use lambda functions instead.
+
+ * platform/graphics/cg/GraphicsContextCG.cpp:
+ (WebCore::sRGBColorSpaceRef):
+ (WebCore::linearRGBColorSpaceRef):
+ (WebCore::extendedSRGBColorSpaceRef):
+ (WebCore::displayP3ColorSpaceRef):
+
2017-12-14 Devin Rousso <web...@devinrousso.com>
Web Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentation logic
Modified: trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp (225945 => 225946)
--- trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp 2017-12-15 01:00:04 UTC (rev 225945)
+++ trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp 2017-12-15 01:01:47 UTC (rev 225946)
@@ -74,19 +74,22 @@
CGColorSpaceRef sRGBColorSpaceRef()
{
- static CGColorSpaceRef sRGBColorSpace;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- sRGBColorSpace = CGColorSpaceCreateWithName(kCGColorSpaceSRGB);
+ auto createColorSpace = []() {
#if PLATFORM(WIN)
// Out-of-date CG installations will not honor kCGColorSpaceSRGB. This logic avoids
// causing a crash under those conditions. Since the default color space in Windows
// is sRGB, this all works out nicely.
// FIXME: Is this still needed? rdar://problem/15213515 was fixed.
- if (!sRGBColorSpace)
- sRGBColorSpace = CGColorSpaceCreateDeviceRGB();
+ CGColorSpaceRef colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceSRGB);
+ if (!colorSpace)
+ colorSpace = CGColorSpaceCreateDeviceRGB();
+ return colorSpace;
+#else
+ return CGColorSpaceCreateWithName(kCGColorSpaceSRGB);
#endif // PLATFORM(WIN)
- });
+ };
+
+ static CGColorSpaceRef sRGBColorSpace = createColorSpace();
return sRGBColorSpace;
}
@@ -94,17 +97,16 @@
// See GraphicsContextCocoa for the pre-10.12 implementation.
CGColorSpaceRef linearRGBColorSpaceRef()
{
- static CGColorSpaceRef linearRGBColorSpace;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
+ auto createColorSpace = []() {
#if PLATFORM(WIN)
// FIXME: Windows should be able to use linear sRGB, this is tracked by http://webkit.org/b/80000.
- linearRGBColorSpace = sRGBColorSpaceRef();
+ return sRGBColorSpaceRef();
#else
- linearRGBColorSpace = CGColorSpaceCreateWithName(kCGColorSpaceLinearSRGB);
+ return CGColorSpaceCreateWithName(kCGColorSpaceLinearSRGB);
#endif
- });
-
+ };
+
+ static CGColorSpaceRef linearRGBColorSpace = createColorSpace();
return linearRGBColorSpace;
}
#endif
@@ -111,30 +113,32 @@
CGColorSpaceRef extendedSRGBColorSpaceRef()
{
- static CGColorSpaceRef extendedSRGBColorSpace;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
+ auto createColorSpace = []() {
#if PLATFORM(IOS) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200)
- extendedSRGBColorSpace = CGColorSpaceCreateWithName(kCGColorSpaceExtendedSRGB);
+ CGColorSpaceRef colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceExtendedSRGB);
#endif
// If there is no support for extended sRGB, fall back to sRGB.
- if (!extendedSRGBColorSpace)
- extendedSRGBColorSpace = sRGBColorSpaceRef();
- });
+ if (!colorSpace)
+ colorSpace = sRGBColorSpaceRef();
+
+ return colorSpace;
+ };
+
+ static CGColorSpaceRef extendedSRGBColorSpace = createColorSpace();
return extendedSRGBColorSpace;
}
CGColorSpaceRef displayP3ColorSpaceRef()
{
- static CGColorSpaceRef displayP3ColorSpace;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
+ auto createColorSpace = []() {
#if PLATFORM(IOS) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED > 101100)
- displayP3ColorSpace = CGColorSpaceCreateWithName(kCGColorSpaceDisplayP3);
+ return CGColorSpaceCreateWithName(kCGColorSpaceDisplayP3);
#else
- displayP3ColorSpace = sRGBColorSpaceRef();
+ return sRGBColorSpaceRef();
#endif
- });
+ };
+
+ static CGColorSpaceRef displayP3ColorSpace = createColorSpace();
return displayP3ColorSpace;
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes