• Eric Holk's avatar
    [wasm] Make BuildCCall variadic to avoid buffer space and copies · 8c88dd04
    Eric Holk authored
    The typical pattern for using BuildCCall was to create a stack-allocated array
    of arguments, which was passed to BuildCCall. BuildCCall then would allocate
    scratch space using WasmGraphBuilder::Buffer and copy the arguments into the
    scratch space. This copy is unnecessary and also the use of Buffer can lead to
    silently overwriting scratch space that may be used higher up the stack.
    
    Now BuildCCall takes all of the functions parameters as arguments and stores
    this directly in a stack-allocated buffer, avoiding the use of Buffer at all and
    all its associated pitfalls.
    
    Change-Id: Ia0de9a90350d7fcbbb1b05d28e735d790a5f9143
    Reviewed-on: https://chromium-review.googlesource.com/701638Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Commit-Queue: Eric Holk <eholk@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#48350}
    8c88dd04
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...
.editorconfig 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...
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...