• gdeepti's avatar
    [wasm] WebAssembly.Memory object can be referenced by multiple Instance objects. · e108f90d
    gdeepti authored
    Add support for WebAssembly.Memory objects to be simultaneously referenced by multiple Instance objects. GrowingMemory should maintain a consistent view of memory across instances.
     - Store a link to instances that share WebAssembly.Memory in the WasmMemoryObject, updated on instantiate.
     - Implement WasmInstanceWrapper as a wrapper around the instance object to keep track of previous/next instances, instance object is stored as a WeakCell that can be garbage collected.
     - MemoryInstanceFinalizer maintains a valid list of instances when an instance is garbage collected.
     - Refactor GrowInstanceMemory to GrowMemoryBuffer that allocates a new buffer, and UncheckedUpdateInstanceMemory that updates memory references for an instance.
    
     R=titzer@chromium.org, mtrofin@chromium.org, bradnelson@chromium.org
    
    Committed: https://crrev.com/30ef8e33f3a199a27ca8512bcee314c9522d03f6
    Committed: https://crrev.com/3c98e339599b068f1ed630afb7601ff942424d31
    Review-Url: https://codereview.chromium.org/2471883003
    Cr-Original-Original-Commit-Position: refs/heads/master@{#41121}
    Cr-Original-Commit-Position: refs/heads/master@{#41198}
    Cr-Commit-Position: refs/heads/master@{#41234}
    e108f90d
wasm-module.cc 96.4 KB