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

2015-10-09 Geoffrey Garen <[email protected]>

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

This time for double sure?

The cause of the crash was an incorrect write barrier.

OSR exit was barriering the baseline codeblock for the top of the stack
twice, missing the baseline codeblock for the bottom of the stack.

Restored changesets:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGPlan.h

    r190809 r190827  
    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.