Ignore:
Timestamp:
Jul 24, 2013, 9:02:20 PM (12 years ago)
Author:
[email protected]
Message:

fourthTier: Recursive deadlock in DFG::ByteCodeParser
https://bugs.webkit.org/show_bug.cgi?id=117376

Source/JavaScriptCore:

Reviewed by Mark Hahnenberg.

Leave the lock early to prevent a deadlock beneath get().

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

Source/WTF:

Reviewed by Mark Hahnenberg.

I've often wanted to leave a lock early. Now I have that power!

  • wtf/Locker.h:

(WTF::Locker::Locker):
(WTF::Locker::~Locker):
(Locker):
(WTF::Locker::unlockEarly):
(WTF::Locker::lock):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/interpreter/CallFrame.h

    r153212 r153216  
    163163        void setLocationAsBytecodeOffset(unsigned);
    164164
     165#if ENABLE(DFG_JIT)
    165166        unsigned bytecodeOffsetFromCodeOriginIndex();
     167#endif
    166168
    167169        Register* frameExtent()
     
    283285        CallFrame* trueCallerFrame();
    284286#else
    285         CallFrame* trueCallFrame(AbstractPC) { return this; }
     287        CallFrame* trueCallFrame() { return this; }
    286288        CallFrame* trueCallerFrame() { return callerFrame()->removeHostCallFrameFlag(); }
    287289#endif
Note: See TracChangeset for help on using the changeset viewer.