Ignore:
Timestamp:
Aug 21, 2009, 12:48:59 AM (16 years ago)
Author:
[email protected]
Message:

Browser hangs on opening Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=28438

Reviewed by Maciej Stachowiak.

Code generation needs to be able to walk the entire scopechain in some
cases, however the symbol table used by activations was a member of the
codeblock. Following recompilation this may no longer exist, leading
to a crash or hang on lookup.

We fix this by introducing a refcounted SymbolTable subclass, SharedSymbolTable,
for the CodeBlocks used by function code. This allows activations to
maintain ownership of a copy of the symbol table even after recompilation so
they can continue to work.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/bytecode/CodeBlock.cpp

    r47597 r47627  
    12491249}
    12501250
    1251 CodeBlock::CodeBlock(ExecutableBase* ownerExecutable, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset)
     1251CodeBlock::CodeBlock(ExecutableBase* ownerExecutable, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, SymbolTable* symTab)
    12521252    : m_numCalleeRegisters(0)
    12531253    , m_numVars(0)
     
    12641264    , m_source(sourceProvider)
    12651265    , m_sourceOffset(sourceOffset)
     1266    , m_symbolTable(symTab)
    12661267    , m_exceptionInfo(new ExceptionInfo)
    12671268{
Note: See TracChangeset for help on using the changeset viewer.