Ignore:
Timestamp:
Jul 15, 2014, 12:11:57 PM (11 years ago)
Author:
[email protected]
Message:

ScriptExecutable::forEachCodeBlock can dereference null CodeBlocks
https://bugs.webkit.org/show_bug.cgi?id=134928

Reviewed by Andreas Kling.

  • bytecode/CodeBlock.h:

(JSC::ScriptExecutable::forEachCodeBlock): Check for null CodeBlocks before calling forEachRelatedCodeBlock.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/bytecode/CodeBlock.h

    r170774 r171108  
    12831283    switch (type()) {
    12841284    case ProgramExecutableType: {
    1285         jsCast<ProgramExecutable*>(this)->m_programCodeBlock->forEachRelatedCodeBlock(std::forward<Functor>(functor));
     1285        if (CodeBlock* codeBlock = jsCast<ProgramExecutable*>(this)->m_programCodeBlock.get())
     1286            codeBlock->forEachRelatedCodeBlock(std::forward<Functor>(functor));
    12861287        break;
    12871288    }
    12881289       
    12891290    case EvalExecutableType: {
    1290         jsCast<EvalExecutable*>(this)->m_evalCodeBlock->forEachRelatedCodeBlock(std::forward<Functor>(functor));
     1291        if (CodeBlock* codeBlock = jsCast<EvalExecutable*>(this)->m_evalCodeBlock.get())
     1292            codeBlock->forEachRelatedCodeBlock(std::forward<Functor>(functor));
    12911293        break;
    12921294    }
Note: See TracChangeset for help on using the changeset viewer.