jitCompileAndSetHeuristics should DeferGCForAWhile
authorfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 Oct 2013 17:55:56 +0000 (17:55 +0000)
committerfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 Oct 2013 17:55:56 +0000 (17:55 +0000)
https://bugs.webkit.org/show_bug.cgi?id=123196

Reviewed by Mark Hahnenberg.

This fixes random crashes in V8v7/raytrace. I only see those crashes on exactly one of
my machines. I don't think this is testable; we just need to steadily converge towards
getting our uses of DeferGC to be right and then be careful not to regress. We're not
there yet, obviously.

* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::jitCompileAndSetHeuristics):

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

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/llint/LLIntSlowPaths.cpp

index dbd709f..e91c1d5 100644 (file)
@@ -1,3 +1,18 @@
+2013-10-22  Filip Pizlo  <fpizlo@apple.com>
+
+        jitCompileAndSetHeuristics should DeferGCForAWhile
+        https://bugs.webkit.org/show_bug.cgi?id=123196
+
+        Reviewed by Mark Hahnenberg.
+        
+        This fixes random crashes in V8v7/raytrace. I only see those crashes on exactly one of
+        my machines. I don't think this is testable; we just need to steadily converge towards
+        getting our uses of DeferGC to be right and then be careful not to regress. We're not
+        there yet, obviously.
+        
+        * llint/LLIntSlowPaths.cpp:
+        (JSC::LLInt::jitCompileAndSetHeuristics):
+
 2013-10-23  Daniel Bates  <dabates@apple.com>
 
         [iOS] Upstream more JavaScriptCore build configuration changes
index 66fb029..8b92cc0 100644 (file)
@@ -278,7 +278,7 @@ inline bool shouldJIT(ExecState* exec)
 inline bool jitCompileAndSetHeuristics(CodeBlock* codeBlock, ExecState* exec)
 {
     VM& vm = exec->vm();
-    DeferGC deferGC(vm.heap);
+    DeferGCForAWhile deferGC(vm.heap); // My callers don't set top callframe, so we don't want to GC here at all.
     
     codeBlock->updateAllValueProfilePredictions();