Ignore:
Timestamp:
Oct 7, 2015, 4:10:20 PM (10 years ago)
Author:
[email protected]
Message:

Unreviewed, rolling back in r190450
https://bugs.webkit.org/show_bug.cgi?id=149727

This time for sure?

The cause of the leak was an invalidated compilation.

There was vestigial manual memory management code that eagerly removed
a CodeBlock from the set of CodeBlocks if compilation was invalidated.
That's not cool since we rely on the set of CodeBlocks when we run
destructors.

The fix is to remove the vestigial code.

I ran the leaks, correctness, and performance tests locally and did not
see any problems.

Restored changesets:

"CodeBlock should be a GC object"
https://bugs.webkit.org/show_bug.cgi?id=149727
http://trac.webkit.org/changeset/190450

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/JITToDFGDeferredCompilationCallback.cpp

    r190606 r190694  
    4444
    4545void JITToDFGDeferredCompilationCallback::compilationDidBecomeReadyAsynchronously(
    46     CodeBlock* codeBlock)
     46    CodeBlock* codeBlock, CodeBlock* profiledDFGCodeBlock)
    4747{
     48    ASSERT_UNUSED(profiledDFGCodeBlock, !profiledDFGCodeBlock);
    4849    ASSERT(codeBlock->alternative()->jitType() == JITCode::BaselineJIT);
    4950   
     
    5556
    5657void JITToDFGDeferredCompilationCallback::compilationDidComplete(
    57     CodeBlock* codeBlock, CompilationResult result)
     58    CodeBlock* codeBlock, CodeBlock* profiledDFGCodeBlock, CompilationResult result)
    5859{
     60    ASSERT(!profiledDFGCodeBlock);
    5961    ASSERT(codeBlock->alternative()->jitType() == JITCode::BaselineJIT);
    6062   
     
    6769    codeBlock->alternative()->setOptimizationThresholdBasedOnCompilationResult(result);
    6870
    69     DeferredCompilationCallback::compilationDidComplete(codeBlock, result);
     71    DeferredCompilationCallback::compilationDidComplete(codeBlock, profiledDFGCodeBlock, result);
    7072}
    7173
Note: See TracChangeset for help on using the changeset viewer.