Title: [88906] trunk/Source/WebKit2
Revision
88906
Author
[email protected]
Date
2011-06-14 22:29:08 -0700 (Tue, 14 Jun 2011)

Log Message

2011-06-14  Sam Weinig  <[email protected]>

        Reviewed by Simon Fraser.

        Follow up for Callers should be robust against WebImage::create() returning an image with a null snapshot
        https://bugs.webkit.org/show_bug.cgi?id=62666

        * Shared/API/c/cg/WKImageCG.cpp:
        (WKImageCreateCGImage):
        (WKImageCreateFromCGImage):
        Don't null check the arguments (as per our API design) or the direct result of WebImage::create.

        * Shared/UserMessageCoders.h:
        (WebKit::UserMessageEncoder::baseEncode):
        Remove redundant check and make not being able to create a handle the same
        as not being backed by shareable memory.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (88905 => 88906)


--- trunk/Source/WebKit2/ChangeLog	2011-06-15 04:37:51 UTC (rev 88905)
+++ trunk/Source/WebKit2/ChangeLog	2011-06-15 05:29:08 UTC (rev 88906)
@@ -1,3 +1,20 @@
+2011-06-14  Sam Weinig  <[email protected]>
+
+        Reviewed by Simon Fraser.
+
+        Follow up for Callers should be robust against WebImage::create() returning an image with a null snapshot
+        https://bugs.webkit.org/show_bug.cgi?id=62666
+
+        * Shared/API/c/cg/WKImageCG.cpp:
+        (WKImageCreateCGImage):
+        (WKImageCreateFromCGImage):
+        Don't null check the arguments (as per our API design) or the direct result of WebImage::create.
+
+        * Shared/UserMessageCoders.h:
+        (WebKit::UserMessageEncoder::baseEncode):
+        Remove redundant check and make not being able to create a handle the same
+        as not being backed by shareable memory.
+
 2011-06-14  John Sullivan  <[email protected]>
 
         Reviewed by Ada Chan.

Modified: trunk/Source/WebKit2/Shared/API/c/cg/WKImageCG.cpp (88905 => 88906)


--- trunk/Source/WebKit2/Shared/API/c/cg/WKImageCG.cpp	2011-06-15 04:37:51 UTC (rev 88905)
+++ trunk/Source/WebKit2/Shared/API/c/cg/WKImageCG.cpp	2011-06-15 05:29:08 UTC (rev 88906)
@@ -36,13 +36,10 @@
 
 CGImageRef WKImageCreateCGImage(WKImageRef imageRef)
 {
-    if (!imageRef)
-        return 0;
-    
     WebImage* webImage = toImpl(imageRef);
-    if (!webImage || !webImage->bitmap())
+    if (!webImage->bitmap())
         return 0;
-    
+
     return webImage->bitmap()->makeCGImageCopy().leakRef();
 }
 
@@ -53,9 +50,9 @@
     
     IntSize imageSize(CGImageGetWidth(imageRef), CGImageGetHeight(imageRef));
     RefPtr<WebImage> webImage = WebImage::create(imageSize, toImageOptions(options));
-    if (!webImage || !webImage->bitmap())
+    if (!webImage->bitmap())
         return 0;
-    
+
     OwnPtr<GraphicsContext> graphicsContext = webImage->bitmap()->createGraphicsContext();
     CGContextDrawImage(graphicsContext->platformContext(), CGRectMake(0, 0, imageSize.width(), imageSize.height()), imageRef);
     return toAPI(webImage.release().leakRef());

Modified: trunk/Source/WebKit2/Shared/UserMessageCoders.h (88905 => 88906)


--- trunk/Source/WebKit2/Shared/UserMessageCoders.h	2011-06-15 04:37:51 UTC (rev 88905)
+++ trunk/Source/WebKit2/Shared/UserMessageCoders.h	2011-06-15 05:29:08 UTC (rev 88906)
@@ -128,17 +128,17 @@
         }
         case APIObject::TypeImage: {
             WebImage* image = static_cast<WebImage*>(m_root);
-            if (!image->bitmap() || !image->bitmap()->isBackedBySharedMemory()) {
+
+            ShareableBitmap::Handle handle;
+            if (!image->bitmap() || !image->bitmap()->isBackedBySharedMemory() || !image->bitmap()->createHandle(handle)) {
+                // Initial false indicates no allocated bitmap or is not shareable.
                 encoder->encode(false);
                 return true;
             }
 
-            ShareableBitmap::Handle handle;
-            if (!image->bitmap() || !image->bitmap()->createHandle(handle))
-                return false;
+            // Initial true indicates a bitmap was allocated and is shareable.
+            encoder->encode(true);
 
-            encoder->encode(true);
-            
             encoder->encode(handle);
             return true;
         }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to