Ignore:
Timestamp:
Oct 5, 2015, 4:31:53 PM (10 years ago)
Author:
[email protected]
Message:

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

The cause of the leak was VM shutdown, which happens in workers.

The fix is for CodeBlockSet to participate in lastChanceToFinalize,
since it's responsible for running CodeBlock destructors.

I ran the leaks tests locally and did not see any CodeBlock-related leaks.

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/llint/LLIntSlowPaths.cpp

    r190546 r190589  
    577577            && !structure->typeInfo().prohibitsPropertyCaching()
    578578            && !structure->typeInfo().newImpurePropertyFiresWatchpoints()) {
    579             vm.heap.writeBarrier(codeBlock->ownerExecutable());
     579            vm.heap.writeBarrier(codeBlock);
    580580           
    581581            ConcurrentJITLocker locker(codeBlock->m_lock);
     
    642642            && baseCell == slot.base()) {
    643643
    644             vm.heap.writeBarrier(codeBlock->ownerExecutable());
     644            vm.heap.writeBarrier(codeBlock);
    645645           
    646646            if (slot.type() == PutPropertySlot::NewProperty) {
     
    659659                            ASSERT(chain);
    660660                            pc[7].u.structureChain.set(
    661                                 vm, codeBlock->ownerExecutable(), chain);
     661                                vm, codeBlock, chain);
    662662                        }
    663663                        pc[8].u.putByIdFlags = static_cast<PutByIdFlags>(
     
    11911191        if (callLinkInfo->isOnList())
    11921192            callLinkInfo->remove();
    1193         callLinkInfo->callee.set(vm, callerCodeBlock->ownerExecutable(), callee);
    1194         callLinkInfo->lastSeenCallee.set(vm, callerCodeBlock->ownerExecutable(), callee);
     1193        callLinkInfo->callee.set(vm, callerCodeBlock, callee);
     1194        callLinkInfo->lastSeenCallee.set(vm, callerCodeBlock, callee);
    11951195        callLinkInfo->machineCodeTarget = codePtr;
    11961196        if (codeBlock)
Note: See TracChangeset for help on using the changeset viewer.