diff options
author | Joyee Cheung <joyeec9h3@gmail.com> | 2019-04-21 20:03:21 +0800 |
---|---|---|
committer | Joyee Cheung <joyeec9h3@gmail.com> | 2019-04-23 11:26:09 +0800 |
commit | d5d9c349d3f0ff268f8dc2cc31812581bbe2815e (patch) | |
tree | d8321a2f2e153f4d236b9fca6f76ab2c1a6bc24d /tools/snapshot | |
parent | eb23b176d8c7122af6add5ee38f87044288d3d39 (diff) | |
download | android-node-v8-d5d9c349d3f0ff268f8dc2cc31812581bbe2815e.tar.gz android-node-v8-d5d9c349d3f0ff268f8dc2cc31812581bbe2815e.tar.bz2 android-node-v8-d5d9c349d3f0ff268f8dc2cc31812581bbe2815e.zip |
src: use std::vector<size_t> instead of IndexArray
PR-URL: https://github.com/nodejs/node/pull/27321
Refs: https://github.com/nodejs/node/issues/17058
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'tools/snapshot')
-rw-r--r-- | tools/snapshot/snapshot_builder.cc | 45 |
1 files changed, 15 insertions, 30 deletions
diff --git a/tools/snapshot/snapshot_builder.cc b/tools/snapshot/snapshot_builder.cc index 835fca9f46..1faa5330ae 100644 --- a/tools/snapshot/snapshot_builder.cc +++ b/tools/snapshot/snapshot_builder.cc @@ -16,10 +16,16 @@ using v8::Locker; using v8::SnapshotCreator; using v8::StartupData; +template <typename T> +void WriteVector(std::stringstream* ss, const T* vec, size_t size) { + for (size_t i = 0; i < size; i++) { + *ss << std::to_string(vec[i]) << (i == size - 1 ? '\n' : ','); + } +} + std::string FormatBlob(v8::StartupData* blob, const std::vector<size_t>& isolate_data_indexes) { std::stringstream ss; - size_t isolate_data_indexes_size = isolate_data_indexes.size(); ss << R"(#include <cstddef> #include "node_main_instance.h" @@ -29,47 +35,26 @@ std::string FormatBlob(v8::StartupData* blob, namespace node { -static const uint8_t blob_data[] = { +static const char blob_data[] = { )"; - - for (int i = 0; i < blob->raw_size; i++) { - uint8_t ch = blob->data[i]; - ss << std::to_string(ch) << ((i == blob->raw_size - 1) ? '\n' : ','); - } - + WriteVector(&ss, blob->data, blob->raw_size); ss << R"(}; static const int blob_size = )" << blob->raw_size << R"(; -static v8::StartupData blob = { - reinterpret_cast<const char*>(blob_data), - blob_size -}; +static v8::StartupData blob = { blob_data, blob_size }; )"; - ss << R"(v8::StartupData* -NodeMainInstance::GetEmbeddedSnapshotBlob() { + ss << R"(v8::StartupData* NodeMainInstance::GetEmbeddedSnapshotBlob() { return &blob; } -static const size_t isolate_data_indexes_raw[] = { +static const std::vector<size_t> isolate_data_indexes { )"; - for (size_t i = 0; i < isolate_data_indexes_size; i++) { - ss << std::to_string(isolate_data_indexes[i]) - << ((i == isolate_data_indexes_size - 1) ? '\n' : ','); - } - ss << "};\n\n"; - - ss << "static const size_t isolate_data_indexes_size = " - << isolate_data_indexes_size << R"(; - -NodeMainInstance::IndexArray isolate_data_indexes { - isolate_data_indexes_raw, - isolate_data_indexes_size -}; + WriteVector(&ss, isolate_data_indexes.data(), isolate_data_indexes.size()); + ss << R"(}; -const NodeMainInstance::IndexArray* -NodeMainInstance::GetIsolateDataIndexes() { +const std::vector<size_t>* NodeMainInstance::GetIsolateDataIndexes() { return &isolate_data_indexes; } } // namespace node |