Title: [153354] trunk/Source/_javascript_Core
Revision
153354
Author
[email protected]
Date
2013-07-25 16:14:51 -0700 (Thu, 25 Jul 2013)

Log Message

REGRESSION(FTL): Most layout tests crashes
https://bugs.webkit.org/show_bug.cgi?id=119089

Reviewed by Oliver Hunt.

* runtime/ExecutionHarness.h:
(JSC::prepareForExecution): Move prepareForExecutionImpl call into its own statement. This prevents the GCC-compiled
code to create the PassOwnPtr<JSC::JITCode> (intended as a parameter to the installOptimizedCode call) from the jitCode
RefPtr<JSC::JITCode> parameter before the latter was actually given a proper value through the prepareForExecutionImpl call.
Currently it's created beforehand and therefor holds a null pointer before it's anchored as the JIT code in
JSC::CodeBlock::setJITCode, which later indirectly causes assertions in JSC::CodeBlock::jitCompile.
(JSC::prepareFunctionForExecution): Ditto for prepareFunctionForExecutionImpl.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (153353 => 153354)


--- trunk/Source/_javascript_Core/ChangeLog	2013-07-25 23:07:06 UTC (rev 153353)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-07-25 23:14:51 UTC (rev 153354)
@@ -1,3 +1,18 @@
+2013-07-25  Zan Dobersek  <[email protected]>
+
+        REGRESSION(FTL): Most layout tests crashes
+        https://bugs.webkit.org/show_bug.cgi?id=119089
+
+        Reviewed by Oliver Hunt.
+
+        * runtime/ExecutionHarness.h:
+        (JSC::prepareForExecution): Move prepareForExecutionImpl call into its own statement. This prevents the GCC-compiled
+        code to create the PassOwnPtr<JSC::JITCode> (intended as a parameter to the installOptimizedCode call) from the jitCode
+        RefPtr<JSC::JITCode> parameter before the latter was actually given a proper value through the prepareForExecutionImpl call.
+        Currently it's created beforehand and therefor holds a null pointer before it's anchored as the JIT code in
+        JSC::CodeBlock::setJITCode, which later indirectly causes assertions in JSC::CodeBlock::jitCompile.
+        (JSC::prepareFunctionForExecution): Ditto for prepareFunctionForExecutionImpl.
+
 2013-07-25  Brent Fulgham  <[email protected]>
 
         [Windows] Unreviewed build fix.

Modified: trunk/Source/_javascript_Core/runtime/ExecutionHarness.h (153353 => 153354)


--- trunk/Source/_javascript_Core/runtime/ExecutionHarness.h	2013-07-25 23:07:06 UTC (rev 153353)
+++ trunk/Source/_javascript_Core/runtime/ExecutionHarness.h	2013-07-25 23:14:51 UTC (rev 153354)
@@ -124,10 +124,8 @@
     ExecState* exec, RefPtr<CodeBlockType>& sink, CodeBlockType* codeBlock,
     RefPtr<JITCode>& jitCode, JITCode::JITType jitType, unsigned bytecodeIndex)
 {
-    return installOptimizedCode(
-        prepareForExecutionImpl(
-            exec, codeBlock, jitCode, jitType, bytecodeIndex),
-        sink, codeBlock, jitCode, MacroAssemblerCodePtr(), 0);
+    CompilationResult result = prepareForExecutionImpl(exec, codeBlock, jitCode, jitType, bytecodeIndex);
+    return installOptimizedCode(result, sink, codeBlock, jitCode, MacroAssemblerCodePtr(), 0);
 }
 
 inline CompilationResult prepareFunctionForExecution(
@@ -136,11 +134,9 @@
     int& numParameters, JITCode::JITType jitType, unsigned bytecodeIndex,
     CodeSpecializationKind kind)
 {
-    return installOptimizedCode(
-        prepareFunctionForExecutionImpl(
-            exec, codeBlock, jitCode, jitCodeWithArityCheck, jitType,
-            bytecodeIndex, kind),
-        sink, codeBlock, jitCode, jitCodeWithArityCheck, &numParameters);
+    CompilationResult result = prepareFunctionForExecutionImpl(exec, codeBlock,
+        jitCode, jitCodeWithArityCheck, jitType, bytecodeIndex, kind);
+    return installOptimizedCode(result, sink, codeBlock, jitCode, jitCodeWithArityCheck, &numParameters);
 }
 
 #if ENABLE(DFG_JIT)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to