• 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
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
DEPS.chromium Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...