| Index: src/snapshot/serializer-common.h
|
| diff --git a/src/snapshot/serializer-common.h b/src/snapshot/serializer-common.h
|
| index b426efd538e99384dea8f8088ee61094b154752e..dfe58245b4e9b26780f2f7b704d5476edd7aafc5 100644
|
| --- a/src/snapshot/serializer-common.h
|
| +++ b/src/snapshot/serializer-common.h
|
| @@ -245,14 +245,20 @@ class SerializedData {
|
| }
|
|
|
| uint32_t GetMagicNumber() const { return GetHeaderValue(kMagicNumberOffset); }
|
| + uint32_t GetExtraReferences() const {
|
| + return GetHeaderValue(kExtraExternalReferencesOffset);
|
| + }
|
|
|
| class ChunkSizeBits : public BitField<uint32_t, 0, 31> {};
|
| class IsLastChunkBits : public BitField<bool, 31, 1> {};
|
|
|
| static uint32_t ComputeMagicNumber(ExternalReferenceTable* table) {
|
| - uint32_t external_refs = table->size();
|
| + uint32_t external_refs = table->size() - table->num_api_references();
|
| return 0xC0DE0000 ^ external_refs;
|
| }
|
| + static uint32_t GetExtraReferences(ExternalReferenceTable* table) {
|
| + return table->num_api_references();
|
| + }
|
|
|
| protected:
|
| void SetHeaderValue(int offset, uint32_t value) {
|
| @@ -271,12 +277,18 @@ class SerializedData {
|
| static uint32_t ComputeMagicNumber(Isolate* isolate) {
|
| return ComputeMagicNumber(ExternalReferenceTable::instance(isolate));
|
| }
|
| + static uint32_t GetExtraReferences(Isolate* isolate) {
|
| + return GetExtraReferences(ExternalReferenceTable::instance(isolate));
|
| + }
|
|
|
| void SetMagicNumber(Isolate* isolate) {
|
| SetHeaderValue(kMagicNumberOffset, ComputeMagicNumber(isolate));
|
| + SetHeaderValue(kExtraExternalReferencesOffset, GetExtraReferences(isolate));
|
| }
|
|
|
| static const int kMagicNumberOffset = 0;
|
| + static const int kExtraExternalReferencesOffset =
|
| + kMagicNumberOffset + kInt32Size;
|
|
|
| byte* data_;
|
| int size_;
|
|
|