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/dfg/DFGPlan.h

    r190546 r190589  
    5656struct Plan : public ThreadSafeRefCounted<Plan> {
    5757    Plan(
    58         PassRefPtr<CodeBlock> codeBlockToCompile, CodeBlock* profiledDFGCodeBlock,
     58        CodeBlock* codeBlockToCompile, CodeBlock* profiledDFGCodeBlock,
    5959        CompilationMode, unsigned osrEntryBytecodeIndex,
    6060        const Operands<JSValue>& mustHandleValues);
     
    7272    CompilationKey key();
    7373   
    74     void clearCodeBlockMarks();
     74    void rememberCodeBlocks();
    7575    void checkLivenessAndVisitChildren(SlotVisitor&);
    7676    bool isKnownToBeLiveDuringGC();
     
    7878   
    7979    VM& vm;
    80     RefPtr<CodeBlock> codeBlock;
    81     RefPtr<CodeBlock> profiledDFGCodeBlock;
     80
     81    // These can be raw pointers because we visit them during every GC in checkLivenessAndVisitChildren.
     82    CodeBlock* codeBlock;
     83    CodeBlock* profiledDFGCodeBlock;
     84
    8285    CompilationMode mode;
    8386    const unsigned osrEntryBytecodeIndex;
Note: See TracChangeset for help on using the changeset viewer.