summaryrefslogtreecommitdiff
path: root/tools/snapshot
diff options
context:
space:
mode:
authorJoyee Cheung <joyeec9h3@gmail.com>2019-04-21 20:03:21 +0800
committerJoyee Cheung <joyeec9h3@gmail.com>2019-04-23 11:26:09 +0800
commitd5d9c349d3f0ff268f8dc2cc31812581bbe2815e (patch)
treed8321a2f2e153f4d236b9fca6f76ab2c1a6bc24d /tools/snapshot
parenteb23b176d8c7122af6add5ee38f87044288d3d39 (diff)
downloadandroid-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.cc45
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