Ignore:
Timestamp:
Jan 18, 2011, 3:45:34 PM (14 years ago)
Author:
[email protected]
Message:

2011-01-18 Geoffrey Garen <[email protected]>

Reviewed by Darin Adler.

Removed RegisterFile::markGlobals because it was obtuse, and it
unnecessarily relied on conservative marking.
https://bugs.webkit.org/show_bug.cgi?id=52668

  • interpreter/RegisterFile.h: Removed markGlobals.
  • runtime/JSActivation.cpp: (JSC::JSActivation::markChildren): Added a comment explaning why some JSActivations don't always mark their registers arrays.
  • runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::markChildren): Instead of calling markGlobals, mark the registers array directly.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp

    r74454 r76078  
    350350        (*it)->markAggregate(markStack);
    351351
    352     RegisterFile& registerFile = globalData().interpreter->registerFile();
    353     if (registerFile.globalObject() == this)
    354         registerFile.markGlobals(markStack, &globalData().heap);
    355 
    356352    markIfNeeded(markStack, d()->regExpConstructor);
    357353    markIfNeeded(markStack, d()->errorConstructor);
     
    398394    // guaranteed to be referenced elsewhere.
    399395
    400     Register* registerArray = d()->registerArray.get();
    401     if (!registerArray)
    402         return;
    403 
    404     size_t size = d()->registerArraySize;
    405     markStack.appendValues(reinterpret_cast<JSValue*>(registerArray), size);
     396    markStack.appendValues(d()->registers - symbolTable().size(), symbolTable().size());
    406397}
    407398
Note: See TracChangeset for help on using the changeset viewer.