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/DFGJITCode.h

    r190809 r190827  
    2929#if ENABLE(DFG_JIT)
    3030
     31#include "CodeBlock.h"
    3132#include "CompilationResult.h"
    3233#include "DFGCommonData.h"
     
    117118
    118119    RegisterSet liveRegistersToPreserveAtExceptionHandlingCallSite(CodeBlock*, CallSiteIndex) override;
    119 
     120#if ENABLE(FTL_JIT)
     121    CodeBlock* osrEntryBlock() { return m_osrEntryBlock.get(); }
     122    void setOSREntryBlock(VM& vm, const JSCell* owner, CodeBlock* osrEntryBlock) { m_osrEntryBlock.set(vm, owner, osrEntryBlock); }
     123    void clearOSREntryBlock() { m_osrEntryBlock.clear(); }
     124#endif
     125   
    120126private:
    121127    friend class JITCompiler; // Allow JITCompiler to call setCodeRef().
     
    131137    uint8_t nestedTriggerIsSet { 0 };
    132138    UpperTierExecutionCounter tierUpCounter;
    133     RefPtr<CodeBlock> osrEntryBlock;
     139    WriteBarrier<CodeBlock> m_osrEntryBlock;
    134140    unsigned osrEntryRetry;
    135141    bool abandonOSREntry;
Note: See TracChangeset for help on using the changeset viewer.