• mtrofin's avatar
    Heap::CopyCode does not correctly handle references into NEW_SPACE. · c0dfc8d8
    mtrofin authored
    A fix would be to walk the reloc info and RecordWriteIntoCode. Doing
    so, however, upsets a scavenger DCHECK.
    
    We stumbled upon this issue because we were placing wasm objects
    (fixed arrays) in NEW_SPACE, rather than OLD_SPACE. These fixed
    arrays were subsequently referenced from Code objects, which were
    then cloned.
    
    The current CL ensures wasm constructs are allocated in OLD_SPACE,
    by pre-tenuring them (consistent with other wasm allocations). In
    addition, it adds a DCHECK for CopyCode clarifying its lack of support
    for references to NEW_SPACE.
    
    We can investigate in a subsequent CL making CopyCode more robust,
    pending understanding of the Scavenger's assumptions.
    
    BUG=
    
    Review-Url: https://codereview.chromium.org/2201663003
    Cr-Commit-Position: refs/heads/master@{#38263}
    c0dfc8d8
wasm-module.cc 62.7 KB