Ignore:
Timestamp:
Sep 9, 2015, 3:00:58 PM (10 years ago)
Author:
[email protected]
Message:

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

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

Restored changeset:

"GC should be able to discover new strong CodeBlock references
during marking"
https://bugs.webkit.org/show_bug.cgi?id=148981
http://trac.webkit.org/changeset/189516

This patch caused infinite recursion on Windows because of a pre-existing
logical error in the non-parallel GC configuration. Even in non-parallel
GC, we must set the mark bit on a CodeBlock to avoid marking it twice
(or, in the case of our crash, infinitely recursively).

File:
1 edited

Legend:

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

    r189524 r189553  
    4545
    4646class CodeBlock;
    47 class CodeBlockSet;
    4847class SlotVisitor;
    4948
     
    7372    CompilationKey key();
    7473   
    75     void clearCodeBlockMarks(CodeBlockSet&);
    76     void checkLivenessAndVisitChildren(SlotVisitor&, CodeBlockSet&);
     74    void clearCodeBlockMarks();
     75    void checkLivenessAndVisitChildren(SlotVisitor&);
    7776    bool isKnownToBeLiveDuringGC();
    7877    void cancel();
Note: See TracChangeset for help on using the changeset viewer.