Title: [165650] trunk/Source/_javascript_Core
Revision
165650
Author
commit-qu...@webkit.org
Date
2014-03-14 14:29:18 -0700 (Fri, 14 Mar 2014)

Log Message

Web Inspector: Gracefully handle nil name -[JSContext setName:]
https://bugs.webkit.org/show_bug.cgi?id=130262

Patch by Joseph Pecoraro <pecor...@apple.com> on 2014-03-14
Reviewed by Mark Hahnenberg.

* API/JSContext.mm:
(-[JSContext setName:]):
Gracefully handle nil input.

* API/tests/testapi.c:
(globalContextNameTest):
* API/tests/testapi.mm:
Test for nil / NULL names in the ObjC and C APIs.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/API/JSContext.mm (165649 => 165650)


--- trunk/Source/_javascript_Core/API/JSContext.mm	2014-03-14 21:20:34 UTC (rev 165649)
+++ trunk/Source/_javascript_Core/API/JSContext.mm	2014-03-14 21:29:18 UTC (rev 165650)
@@ -195,9 +195,10 @@
 
 - (void)setName:(NSString *)name
 {
-    JSStringRef nameJS = JSStringCreateWithCFString((CFStringRef)[name copy]);
+    JSStringRef nameJS = name ? JSStringCreateWithCFString((CFStringRef)[name copy]) : nullptr;
     JSGlobalContextSetName(m_context, nameJS);
-    JSStringRelease(nameJS);
+    if (nameJS)
+        JSStringRelease(nameJS);
 }
 
 @end

Modified: trunk/Source/_javascript_Core/API/tests/testapi.c (165649 => 165650)


--- trunk/Source/_javascript_Core/API/tests/testapi.c	2014-03-14 21:20:34 UTC (rev 165649)
+++ trunk/Source/_javascript_Core/API/tests/testapi.c	2014-03-14 21:29:18 UTC (rev 165650)
@@ -1083,10 +1083,13 @@
     JSStringRef fetchName1 = JSGlobalContextCopyName(context);
     JSGlobalContextSetName(context, name2);
     JSStringRef fetchName2 = JSGlobalContextCopyName(context);
+    JSGlobalContextSetName(context, NULL);
+    JSStringRef fetchName3 = JSGlobalContextCopyName(context);
 
     result &= assertTrue(JSStringIsEqual(name1, fetchName1), "Unexpected Context name");
     result &= assertTrue(JSStringIsEqual(name2, fetchName2), "Unexpected Context name");
     result &= assertTrue(!JSStringIsEqual(fetchName1, fetchName2), "Unexpected Context name");
+    result &= assertTrue(!fetchName3, "Unexpected Context name");
 
     JSStringRelease(name1);
     JSStringRelease(name2);

Modified: trunk/Source/_javascript_Core/API/tests/testapi.mm (165649 => 165650)


--- trunk/Source/_javascript_Core/API/tests/testapi.mm	2014-03-14 21:20:34 UTC (rev 165649)
+++ trunk/Source/_javascript_Core/API/tests/testapi.mm	2014-03-14 21:29:18 UTC (rev 165650)
@@ -1289,9 +1289,12 @@
         NSString *fetchedName1 = context.name;
         context.name = name2;
         NSString *fetchedName2 = context.name;
+        context.name = nil;
+        NSString *fetchedName3 = context.name;
         checkResult(@"fetched context.name was expected", [fetchedName1 isEqualToString:name1]);
         checkResult(@"fetched context.name was expected", [fetchedName2 isEqualToString:name2]);
         checkResult(@"fetched context.name was expected", ![fetchedName1 isEqualToString:fetchedName2]);
+        checkResult(@"fetched context.name was expected", fetchedName3 == nil);
     }
 
     @autoreleasepool {

Modified: trunk/Source/_javascript_Core/ChangeLog (165649 => 165650)


--- trunk/Source/_javascript_Core/ChangeLog	2014-03-14 21:20:34 UTC (rev 165649)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-03-14 21:29:18 UTC (rev 165650)
@@ -1,3 +1,19 @@
+2014-03-14  Joseph Pecoraro  <pecor...@apple.com>
+
+        Web Inspector: Gracefully handle nil name -[JSContext setName:]
+        https://bugs.webkit.org/show_bug.cgi?id=130262
+
+        Reviewed by Mark Hahnenberg.
+
+        * API/JSContext.mm:
+        (-[JSContext setName:]):
+        Gracefully handle nil input.
+
+        * API/tests/testapi.c:
+        (globalContextNameTest):
+        * API/tests/testapi.mm:
+        Test for nil / NULL names in the ObjC and C APIs.
+
 2014-03-11  Oliver Hunt  <oli...@apple.com>
 
         Improve dom error messages
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to