REGRESSION(216914): testCFStrings encounters an invalid ExecState callee pointer.
authormark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 26 May 2017 18:45:43 +0000 (18:45 +0000)
committermark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 26 May 2017 18:45:43 +0000 (18:45 +0000)
https://bugs.webkit.org/show_bug.cgi?id=172651

Reviewed by Saam Barati.

This is because the assertion utility functions used in testCFStrings() expects
to get the JSGlobalContextRef from the global context variable.  However,
testCFStrings() creates its own JSGlobalContextRef but does not set the global
context variable to it.

The fix is to make testCFStrings() initialize the global context variable properly.

* API/tests/testapi.c:
(testCFStrings):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@217498 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/API/tests/testapi.c
Source/JavaScriptCore/ChangeLog

index c71b607..f12cc2e 100644 (file)
@@ -1239,7 +1239,10 @@ static void testMarkingConstraintsAndHeapFinalizers(void)
 #if USE(CF)
 static void testCFStrings(void)
 {
-    JSGlobalContextRef context = JSGlobalContextCreate(0);
+    /* The assertion utility functions we use below expects to get the JSGlobalContextRef
+       from the global context variable. */
+    JSGlobalContextRef oldContext = context;
+    context = JSGlobalContextCreate(0);
 
     UniChar singleUniChar = 65; // Capital A
     CFMutableStringRef cfString = CFStringCreateMutableWithExternalCharactersNoCopy(kCFAllocatorDefault, &singleUniChar, 1, 1, kCFAllocatorNull);
@@ -1332,6 +1335,7 @@ static void testCFStrings(void)
     CFRelease(cfEmptyString);
 
     JSGlobalContextRelease(context);
+    context = oldContext;
 }
 #endif
 
index d4db79c..2d49630 100644 (file)
@@ -1,3 +1,20 @@
+2017-05-26  Mark Lam  <mark.lam@apple.com>
+
+        REGRESSION(216914): testCFStrings encounters an invalid ExecState callee pointer.
+        https://bugs.webkit.org/show_bug.cgi?id=172651
+
+        Reviewed by Saam Barati.
+
+        This is because the assertion utility functions used in testCFStrings() expects
+        to get the JSGlobalContextRef from the global context variable.  However,
+        testCFStrings() creates its own JSGlobalContextRef but does not set the global
+        context variable to it.
+
+        The fix is to make testCFStrings() initialize the global context variable properly.
+
+        * API/tests/testapi.c:
+        (testCFStrings):
+
 2017-05-26  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         Give ModuleProgram the same treatment that we did for ProgramCode in bug#167725