28 int deopt_exit_start_offset,
int eager_deopt_count,
34 data.deopt_exit_start_offset = deopt_exit_start_offset;
35 data.eager_deopt_count = eager_deopt_count;
36 data.deopt_literals_size =
static_cast<uint32_t
>(deopt_literals.size());
38 data.translation_array_size =
static_cast<uint32_t
>(translation_array.
size());
40 size_t translation_array_byte_size =
41 translation_array.
size() *
sizeof(translation_array[0]);
42 size_t deopt_entries_byte_size =
43 deopt_entries.
size() *
sizeof(deopt_entries[0]);
44 size_t deopt_literals_byte_size =
45 deopt_literals.size() *
sizeof(deopt_literals[0]);
46 size_t byte_size =
sizeof(
data) + translation_array_byte_size +
47 deopt_entries_byte_size + deopt_literals_byte_size;
49 uint8_t* result_iter =
result.begin();
50 std::memcpy(result_iter, &data,
sizeof(data));
51 result_iter +=
sizeof(
data);
52 std::memcpy(result_iter, translation_array.
data(),
53 translation_array_byte_size);
54 result_iter += translation_array_byte_size;
55 std::memcpy(result_iter, deopt_entries.
data(), deopt_entries_byte_size);
56 result_iter += deopt_entries_byte_size;
57 static_assert(std::is_trivially_copyable_v<
58 std::remove_reference<
decltype(deopt_literals[0])>>);
59 for (
const auto&
literal : deopt_literals) {
static base::OwnedVector< uint8_t > Serialize(int deopt_exit_start_offset, int eager_deopt_count, base::Vector< const uint8_t > translation_array, base::Vector< wasm::WasmDeoptEntry > deopt_entries, const ZoneDeque< DeoptimizationLiteral > &deopt_literals)