mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[master-next] Update endian stream interface to match Clang r332757
This commit is contained in:
@@ -122,14 +122,14 @@ namespace {
|
||||
}
|
||||
|
||||
uint32_t dataLength = (sizeof(uint32_t) + 1) * data.size();
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint16_t>(keyLength);
|
||||
writer.write<uint16_t>(dataLength);
|
||||
return { keyLength, dataLength };
|
||||
}
|
||||
|
||||
void EmitKey(raw_ostream &out, key_type_ref key, unsigned len) {
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
switch (key.getKind()) {
|
||||
case DeclBaseName::Kind::Normal:
|
||||
writer.write<uint8_t>(static_cast<uint8_t>(DeclNameKind::Normal));
|
||||
@@ -150,7 +150,7 @@ namespace {
|
||||
void EmitData(raw_ostream &out, key_type_ref key, data_type_ref data,
|
||||
unsigned len) {
|
||||
static_assert(declIDFitsIn32Bits(), "DeclID too large");
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
for (auto entry : data) {
|
||||
writer.write<uint8_t>(entry.first);
|
||||
writer.write<uint32_t>(entry.second);
|
||||
@@ -204,7 +204,7 @@ namespace {
|
||||
if (nameData > 0)
|
||||
dataLength += nameData;
|
||||
}
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint16_t>(keyLength);
|
||||
writer.write<uint16_t>(dataLength);
|
||||
return { keyLength, dataLength };
|
||||
@@ -217,7 +217,7 @@ namespace {
|
||||
void EmitData(raw_ostream &out, key_type_ref key, data_type_ref data,
|
||||
unsigned len) {
|
||||
static_assert(declIDFitsIn32Bits(), "DeclID too large");
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
for (auto entry : data) {
|
||||
StringRef dataToWrite;
|
||||
writer.write<uint32_t>(entry.second);
|
||||
@@ -247,7 +247,7 @@ namespace {
|
||||
data_type_ref data) {
|
||||
uint32_t keyLength = key.size();
|
||||
uint32_t dataLength = sizeof(uint32_t);
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint16_t>(keyLength);
|
||||
return { keyLength, dataLength };
|
||||
}
|
||||
@@ -259,7 +259,7 @@ namespace {
|
||||
void EmitData(raw_ostream &out, key_type_ref key, data_type_ref data,
|
||||
unsigned len) {
|
||||
static_assert(declIDFitsIn32Bits(), "DeclID too large");
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint32_t>(data);
|
||||
}
|
||||
};
|
||||
@@ -287,7 +287,7 @@ namespace {
|
||||
data_type_ref data) {
|
||||
uint32_t keyLength = key.str().size();
|
||||
uint32_t dataLength = (sizeof(uint32_t) * 2) * data.size();
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint16_t>(keyLength);
|
||||
writer.write<uint16_t>(dataLength);
|
||||
return { keyLength, dataLength };
|
||||
@@ -301,7 +301,7 @@ namespace {
|
||||
void EmitData(raw_ostream &out, key_type_ref key, data_type_ref data,
|
||||
unsigned len) {
|
||||
static_assert(declIDFitsIn32Bits(), "DeclID too large");
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
for (auto entry : data) {
|
||||
writer.write<uint32_t>(entry.first);
|
||||
writer.write<uint32_t>(entry.second);
|
||||
@@ -341,14 +341,14 @@ namespace {
|
||||
keyLength += key.getIdentifier().str().size(); // The name's length
|
||||
}
|
||||
uint32_t dataLength = sizeof(uint32_t);
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint16_t>(keyLength);
|
||||
// No need to write dataLength, it's constant.
|
||||
return { keyLength, dataLength };
|
||||
}
|
||||
|
||||
void EmitKey(raw_ostream &out, key_type_ref key, unsigned len) {
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
switch (key.getKind()) {
|
||||
case DeclBaseName::Kind::Normal:
|
||||
writer.write<uint8_t>(static_cast<uint8_t>(DeclNameKind::Normal));
|
||||
@@ -369,7 +369,7 @@ namespace {
|
||||
void EmitData(raw_ostream &out, key_type_ref key, data_type_ref data,
|
||||
unsigned len) {
|
||||
static_assert(bitOffsetFitsIn32Bits(), "BitOffset too large");
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint32_t>(static_cast<uint32_t>(data));
|
||||
}
|
||||
};
|
||||
@@ -395,7 +395,7 @@ namespace {
|
||||
assert((data.size() < (1 << 14)) && "Too many members");
|
||||
uint32_t keyLength = sizeof(uint32_t); // key DeclID
|
||||
uint32_t dataLength = sizeof(uint32_t) * data.size(); // value DeclIDs
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint16_t>(keyLength);
|
||||
writer.write<uint16_t>(dataLength);
|
||||
return { keyLength, dataLength };
|
||||
@@ -404,14 +404,14 @@ namespace {
|
||||
void EmitKey(raw_ostream &out, key_type_ref key, unsigned len) {
|
||||
static_assert(declIDFitsIn32Bits(), "DeclID too large");
|
||||
assert(len == sizeof(uint32_t));
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint32_t>(key);
|
||||
}
|
||||
|
||||
void EmitData(raw_ostream &out, key_type_ref key, data_type_ref data,
|
||||
unsigned len) {
|
||||
static_assert(declIDFitsIn32Bits(), "DeclID too large");
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
for (auto entry : data) {
|
||||
writer.write<uint32_t>(entry);
|
||||
}
|
||||
@@ -4186,7 +4186,7 @@ static void writeDeclTable(const index_block::DeclListLayout &DeclList,
|
||||
|
||||
llvm::raw_svector_ostream blobStream(hashTableBlob);
|
||||
// Make sure that no bucket is at offset 0
|
||||
endian::Writer<little>(blobStream).write<uint32_t>(0);
|
||||
endian::write<uint32_t>(blobStream, 0, little);
|
||||
tableOffset = generator.Emit(blobStream);
|
||||
}
|
||||
|
||||
@@ -4212,7 +4212,7 @@ writeExtensionTable(const index_block::ExtensionTableLayout &ExtensionTable,
|
||||
|
||||
llvm::raw_svector_ostream blobStream(hashTableBlob);
|
||||
// Make sure that no bucket is at offset 0
|
||||
endian::Writer<little>(blobStream).write<uint32_t>(0);
|
||||
endian::write<uint32_t>(blobStream, 0, little);
|
||||
tableOffset = generator.Emit(blobStream, info);
|
||||
}
|
||||
|
||||
@@ -4228,7 +4228,7 @@ static void writeLocalDeclTable(const index_block::DeclListLayout &DeclList,
|
||||
{
|
||||
llvm::raw_svector_ostream blobStream(hashTableBlob);
|
||||
// Make sure that no bucket is at offset 0
|
||||
endian::Writer<little>(blobStream).write<uint32_t>(0);
|
||||
endian::write<uint32_t>(blobStream, 0, little);
|
||||
tableOffset = generator.Emit(blobStream);
|
||||
}
|
||||
|
||||
@@ -4248,7 +4248,7 @@ writeNestedTypeDeclsTable(const index_block::NestedTypeDeclsLayout &declList,
|
||||
|
||||
llvm::raw_svector_ostream blobStream(hashTableBlob);
|
||||
// Make sure that no bucket is at offset 0
|
||||
endian::Writer<little>(blobStream).write<uint32_t>(0);
|
||||
endian::write<uint32_t>(blobStream, 0, little);
|
||||
tableOffset = generator.Emit(blobStream);
|
||||
}
|
||||
|
||||
@@ -4273,7 +4273,7 @@ writeDeclMemberNamesTable(const index_block::DeclMemberNamesLayout &declNames,
|
||||
|
||||
llvm::raw_svector_ostream blobStream(hashTableBlob);
|
||||
// Make sure that no bucket is at offset 0
|
||||
endian::Writer<little>(blobStream).write<uint32_t>(0);
|
||||
endian::write<uint32_t>(blobStream, 0, little);
|
||||
tableOffset = generator.Emit(blobStream);
|
||||
}
|
||||
|
||||
@@ -4293,7 +4293,7 @@ writeDeclMembersTable(const decl_member_tables_block::DeclMembersLayout &mems,
|
||||
|
||||
llvm::raw_svector_ostream blobStream(hashTableBlob);
|
||||
// Make sure that no bucket is at offset 0
|
||||
endian::Writer<little>(blobStream).write<uint32_t>(0);
|
||||
endian::write<uint32_t>(blobStream, 0, little);
|
||||
tableOffset = generator.Emit(blobStream);
|
||||
}
|
||||
|
||||
@@ -4343,7 +4343,7 @@ public:
|
||||
|
||||
// Source order.
|
||||
dataLength += numLen;
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint32_t>(keyLength);
|
||||
writer.write<uint32_t>(dataLength);
|
||||
return { keyLength, dataLength };
|
||||
@@ -4355,7 +4355,7 @@ public:
|
||||
|
||||
void EmitData(raw_ostream &out, key_type_ref key, data_type_ref data,
|
||||
unsigned len) {
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint32_t>(data.Brief.size());
|
||||
out << data.Brief;
|
||||
writer.write<uint32_t>(data.Raw.Comments.size());
|
||||
@@ -4551,7 +4551,7 @@ static void writeGroupNames(const comment_block::GroupNamesLayout &GroupNames,
|
||||
ArrayRef<StringRef> Names) {
|
||||
llvm::SmallString<32> Blob;
|
||||
llvm::raw_svector_ostream BlobStream(Blob);
|
||||
endian::Writer<little> Writer(BlobStream);
|
||||
endian::Writer Writer(BlobStream, little);
|
||||
Writer.write<uint32_t>(Names.size());
|
||||
for (auto N : Names) {
|
||||
Writer.write<uint32_t>(N.size());
|
||||
@@ -4672,7 +4672,7 @@ static void writeDeclCommentTable(
|
||||
{
|
||||
llvm::raw_svector_ostream blobStream(hashTableBlob);
|
||||
// Make sure that no bucket is at offset 0
|
||||
endian::Writer<little>(blobStream).write<uint32_t>(0);
|
||||
endian::write<uint32_t>(blobStream, 0, little);
|
||||
tableOffset = Writer.generator.Emit(blobStream);
|
||||
}
|
||||
|
||||
@@ -4709,7 +4709,7 @@ namespace {
|
||||
dataLength += std::get<0>(entry).size();
|
||||
}
|
||||
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
writer.write<uint16_t>(keyLength);
|
||||
writer.write<uint32_t>(dataLength);
|
||||
return { keyLength, dataLength };
|
||||
@@ -4726,7 +4726,7 @@ namespace {
|
||||
void EmitData(raw_ostream &out, key_type_ref key, data_type_ref data,
|
||||
unsigned len) {
|
||||
static_assert(declIDFitsIn32Bits(), "DeclID too large");
|
||||
endian::Writer<little> writer(out);
|
||||
endian::Writer writer(out, little);
|
||||
for (const auto &entry : data) {
|
||||
writer.write<uint32_t>(std::get<0>(entry).size());
|
||||
writer.write<uint8_t>(std::get<1>(entry));
|
||||
@@ -4759,7 +4759,7 @@ static void writeObjCMethodTable(const index_block::ObjCMethodTableLayout &out,
|
||||
}
|
||||
|
||||
// Make sure that no bucket is at offset 0
|
||||
endian::Writer<little>(blobStream).write<uint32_t>(0);
|
||||
endian::write<uint32_t>(blobStream, 0, little);
|
||||
tableOffset = generator.Emit(blobStream);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user