diff options
-rw-r--r-- | include/llvm/Object/YAML.h | 17 | ||||
-rw-r--r-- | lib/Object/YAML.cpp | 2 |
2 files changed, 10 insertions, 9 deletions
diff --git a/include/llvm/Object/YAML.h b/include/llvm/Object/YAML.h index 92811b0..41fe952 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 b33cf34..cf6e616 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; } |