Ignore:
Timestamp:
Oct 25, 2011, 11:17:37 AM (14 years ago)
Author:
[email protected]
Message:

Need to support marking of multiple nested codeblocks when compiling
https://bugs.webkit.org/show_bug.cgi?id=70832

Reviewed by Gavin Barraclough.

When inlining a function we end up with multiple codeblocks being
compiled at the same time, so we need to support a list of live
codeblocks.

  • heap/Heap.cpp:

(JSC::Heap::markRoots):

  • runtime/JSGlobalData.cpp:

(JSC::JSGlobalData::JSGlobalData):

  • runtime/JSGlobalData.h:

(JSC::JSGlobalData::startedCompiling):
(JSC::JSGlobalData::finishedCompiling):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/runtime/JSGlobalData.h

    r98302 r98365  
    189189        NumericStrings numericStrings;
    190190        DateInstanceCache dateInstanceCache;
    191         CodeBlock* codeBlockBeingCompiled;
     191        Vector<CodeBlock*> codeBlocksBeingCompiled;
    192192        void startedCompiling(CodeBlock* codeBlock)
    193193        {
    194             ASSERT(!codeBlockBeingCompiled);
    195             codeBlockBeingCompiled = codeBlock;
     194            codeBlocksBeingCompiled.append(codeBlock);
    196195        }
    197196
    198197        void finishedCompiling(CodeBlock* codeBlock)
    199198        {
    200             ASSERT_UNUSED(codeBlock, codeBlock == codeBlockBeingCompiled);
    201             codeBlockBeingCompiled = 0;
     199            ASSERT_UNUSED(codeBlock, codeBlock == codeBlocksBeingCompiled.last());
     200            codeBlocksBeingCompiled.removeLast();
    202201        }
    203202
Note: See TracChangeset for help on using the changeset viewer.