[snapshot] Make the API external reference table const.

Chromium side: https://chromium-review.googlesource.com/c/chromium/src/+/639552

Bug: chromium:759831
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I1b217c4fa4c930733dcfab982879bf41936a3a83
Reviewed-on: https://chromium-review.googlesource.com/639551
Commit-Queue: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47683}
This commit is contained in:
Jeremy Roman 2017-08-28 17:07:45 -04:00 committed by Commit Bot
parent 5e284d9ab7
commit 779bb1b172
5 changed files with 6 additions and 6 deletions

View File

@ -6830,7 +6830,7 @@ class V8_EXPORT Isolate {
* deserialization. This array and its content must stay valid for the
* entire lifetime of the isolate.
*/
intptr_t* external_references;
const intptr_t* external_references;
/**
* Whether calling Atomics.wait (a function that may block) is allowed in
@ -8175,7 +8175,7 @@ class V8_EXPORT SnapshotCreator {
* \param external_references a null-terminated array of external references
* that must be equivalent to CreateParams::external_references.
*/
SnapshotCreator(intptr_t* external_references = nullptr,
SnapshotCreator(const intptr_t* external_references = nullptr,
StartupData* existing_blob = nullptr);
~SnapshotCreator();

View File

@ -563,7 +563,7 @@ struct SnapshotCreatorData {
} // namespace
SnapshotCreator::SnapshotCreator(intptr_t* external_references,
SnapshotCreator::SnapshotCreator(const intptr_t* external_references,
StartupData* existing_snapshot) {
i::Isolate* internal_isolate = new i::Isolate(true);
Isolate* isolate = reinterpret_cast<Isolate*>(internal_isolate);

View File

@ -430,7 +430,7 @@ typedef std::vector<HeapObject*> DebugObjectCache;
V(DebugObjectCache*, string_stream_debug_object_cache, nullptr) \
V(Object*, string_stream_current_security_token, nullptr) \
V(ExternalReferenceTable*, external_reference_table, nullptr) \
V(intptr_t*, api_external_references, nullptr) \
V(const intptr_t*, api_external_references, nullptr) \
V(AddressToIndexHashMap*, external_reference_map, nullptr) \
V(HeapObjectToIndexHashMap*, root_index_map, nullptr) \
V(int, pending_microtask_count, 0) \

View File

@ -33,7 +33,7 @@ ExternalReferenceEncoder::ExternalReferenceEncoder(Isolate* isolate) {
DCHECK(map_->Get(addr).IsJust());
}
// Add external references provided by the embedder.
intptr_t* api_references = isolate->api_external_references();
const intptr_t* api_references = isolate->api_external_references();
if (api_references == nullptr) return;
for (uint32_t i = 0; api_references[i] != 0; ++i) {
Address addr = reinterpret_cast<Address>(api_references[i]);

View File

@ -48,7 +48,7 @@ class ExternalReferenceEncoder {
#ifdef DEBUG
std::vector<int> count_;
intptr_t* api_references_;
const intptr_t* api_references_;
#endif // DEBUG
DISALLOW_COPY_AND_ASSIGN(ExternalReferenceEncoder);