summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Object/YAML.h17
-rw-r--r--lib/Object/YAML.cpp2
2 files changed, 10 insertions, 9 deletions
diff --git a/include/llvm/Object/YAML.h b/include/llvm/Object/YAML.h
index 92811b04eb..41fe952456 100644
--- a/include/llvm/Object/YAML.h
+++ b/include/llvm/Object/YAML.h
@@ -27,26 +27,27 @@ class BinaryRef {
/// \brief Either raw binary data, or a string of hex bytes (must always
/// be an even number of characters).
ArrayRef<uint8_t> Data;
- bool isBinary;
+ /// \brief Discriminator between the two states of the `Data` member.
+ bool DataIsHexString;
public:
- BinaryRef(ArrayRef<uint8_t> Data) : Data(Data), isBinary(true) {}
+ BinaryRef(ArrayRef<uint8_t> Data) : Data(Data), DataIsHexString(false) {}
BinaryRef(StringRef Data)
: Data(reinterpret_cast<const uint8_t *>(Data.data()), Data.size()),
- isBinary(false) {}
- BinaryRef() : isBinary(false) {}
+ DataIsHexString(true) {}
+ BinaryRef() : DataIsHexString(true) {}
StringRef getHex() const {
- assert(!isBinary);
+ assert(DataIsHexString);
return StringRef(reinterpret_cast<const char *>(Data.data()), Data.size());
}
ArrayRef<uint8_t> getBinary() const {
- assert(isBinary);
+ assert(!DataIsHexString);
return Data;
}
/// \brief The number of bytes that are represented by this BinaryRef.
/// This is the number of bytes that writeAsBinary() will write.
ArrayRef<uint8_t>::size_type binary_size() const {
- if (!isBinary)
+ if (DataIsHexString)
return Data.size() / 2;
return Data.size();
}
@@ -55,7 +56,7 @@ public:
if (Ref.Data.empty() && Data.empty())
return true;
- return Ref.isBinary == isBinary && Ref.Data == Data;
+ return Ref.DataIsHexString == DataIsHexString && Ref.Data == Data;
}
/// \brief Write the contents (regardless of whether it is binary or a
/// hex string) as binary to the given raw_ostream.
diff --git a/lib/Object/YAML.cpp b/lib/Object/YAML.cpp
index b33cf3410f..cf6e616241 100644
--- a/lib/Object/YAML.cpp
+++ b/lib/Object/YAML.cpp
@@ -51,7 +51,7 @@ StringRef yaml::ScalarTraits<object::yaml::BinaryRef>::input(
}
void BinaryRef::writeAsBinary(raw_ostream &OS) const {
- if (isBinary) {
+ if (!DataIsHexString) {
OS.write((const char *)Data.data(), Data.size());
return;
}