[ext-code-space] Fix Factory::NewWasmExportedFunctionData()

... which failed write barrier skipping check.

Bug: v8:11880
Change-Id: Id404914b78f8d722da7129a5f6183596698a150f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3412073
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78739}
This commit is contained in:
Igor Sheludko 2022-01-24 13:05:35 +01:00 committed by V8 LUCI CQ
parent 78b5ff5be5
commit 7308d3a7ac

View File

@ -1593,8 +1593,12 @@ Handle<WasmExportedFunctionData> Factory::NewWasmExportedFunctionData(
result.set_function_index(func_index);
result.set_signature(*sig_foreign);
result.set_wrapper_budget(wrapper_budget);
result.set_c_wrapper_code(*BUILTIN_CODE(isolate(), Illegal),
SKIP_WRITE_BARRIER);
// We can't skip the write barrier when V8_EXTERNAL_CODE_SPACE is enabled
// because in this case the CodeT (CodeDataContainer) objects are not
// immovable.
result.set_c_wrapper_code(
*BUILTIN_CODE(isolate(), Illegal),
V8_EXTERNAL_CODE_SPACE_BOOL ? UPDATE_WRITE_BARRIER : SKIP_WRITE_BARRIER);
result.set_packed_args_size(0);
result.set_suspender(*undefined_value());
return handle(result, isolate());