• Daniel Clark's avatar
    Move potentially reentrant allocation out of the middle of Module::Reset · 61e2b67e
    Daniel Clark authored
    During Module::Reset(), the module is in an unstable state between the
    change to SourceTextModule::code and Module::status.  Any reentrancy
    between these points is problematic because the normal invariants about
    the value of SourceTextModule::code in relation to Module::status do not
    hold.
    
    An allocation of the exports hash table in the middle of Module::Reset()
    was causing reentrancy during this problematic time.  This change fixes
    the issue by moving the allocation earlier in Reset() before any fields
    are modified.
    
    Bug: v8:9522
    Change-Id: Ia941af60a0b31f05a6d8da610b9a270e7f79dac2
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1712449Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Commit-Queue: Dan Clark <daniec@microsoft.com>
    Cr-Commit-Position: refs/heads/master@{#62902}
    61e2b67e
module.cc 13.3 KB