• Andreas Haas's avatar
    [wasm] Refactor the module decoder to work with section bytes · a8424d59
    Andreas Haas authored
    This CL refactors the module decoder so that it can process a list of
    section buffers instead of one module buffer. This change is needed for
    streaming compilation. Streaming compilation may require additional
    changes.
    
    This CL introduces the following interface to the module decoder:
    StartDecoding -- starts the decoding
    DecodeModuleHeader -- decodes the module header
    DecodeSection -- decodes the section
    FinishDecoding -- finishes the decoding and returns the WasmModule
    
    Aside from the different interface the biggest change to the module
    decoder is the introduction of a buffer_offset, which is the offset
    of the current section buffer of the module decoder in the module bytes.
    This buffer_offset is used to translate from section offsets to module
    offsets and back.
    
    Another nice change is that the module decoder does not have a zone
    anymore. Instead the zone is stored directly in the WasmModule where
    it belongs. Zone ownership is also more obvious now.
    
    R=mtrofin@chromium.org, clemensh@chromium.org
    
    Change-Id: I815d777ec380f4c617c39e828ea0c9746c0bae20
    Reviewed-on: https://chromium-review.googlesource.com/505490
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#45374}
    a8424d59
module-decoder.h 3.91 KB