mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Serialize Fingerprints in Swift Modules
This commit is contained in:
@@ -531,6 +531,18 @@ ModuleFileSharedCore::readDeclMembersTable(ArrayRef<uint64_t> fields,
|
||||
base + sizeof(uint32_t), base));
|
||||
}
|
||||
|
||||
std::unique_ptr<ModuleFileSharedCore::SerializedDeclFingerprintsTable>
|
||||
ModuleFileSharedCore::readDeclFingerprintsTable(ArrayRef<uint64_t> fields,
|
||||
StringRef blobData) const {
|
||||
uint32_t tableOffset;
|
||||
index_block::DeclFingerprintsLayout::readRecord(fields, tableOffset);
|
||||
auto base = reinterpret_cast<const uint8_t *>(blobData.data());
|
||||
|
||||
using OwnedTable = std::unique_ptr<SerializedDeclFingerprintsTable>;
|
||||
return OwnedTable(SerializedDeclFingerprintsTable::Create(
|
||||
base + tableOffset, base + sizeof(uint32_t), base));
|
||||
}
|
||||
|
||||
std::unique_ptr<ModuleFileSharedCore::SerializedObjCMethodTable>
|
||||
ModuleFileSharedCore::readObjCMethodTable(ArrayRef<uint64_t> fields,
|
||||
StringRef blobData) const {
|
||||
@@ -685,6 +697,9 @@ bool ModuleFileSharedCore::readIndexBlock(llvm::BitstreamCursor &cursor) {
|
||||
case index_block::DECL_MEMBER_NAMES:
|
||||
DeclMemberNames = readDeclMemberNamesTable(scratch, blobData);
|
||||
break;
|
||||
case index_block::DECL_FINGERPRINTS:
|
||||
DeclFingerprints = readDeclFingerprintsTable(scratch, blobData);
|
||||
break;
|
||||
case index_block::LOCAL_DECL_CONTEXT_OFFSETS:
|
||||
assert(blobData.empty());
|
||||
allocateBuffer(LocalDeclContexts, scratch);
|
||||
|
||||
Reference in New Issue
Block a user