mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
Use just a ArrayRef<uint8_t> to store both hex string and binary data.
llvm-svn: 183043
This commit is contained in:
parent
64fb26327c
commit
3209887408
@ -40,21 +40,21 @@ namespace COFFYAML {
|
||||
/// string. Using this avoid having to allocate temporary strings.
|
||||
/// FIXME: not COFF specific.
|
||||
class BinaryRef {
|
||||
ArrayRef<uint8_t> BinaryData;
|
||||
StringRef HexData;
|
||||
ArrayRef<uint8_t> Data;
|
||||
bool isBinary;
|
||||
public:
|
||||
BinaryRef(ArrayRef<uint8_t> BinaryData)
|
||||
: BinaryData(BinaryData), isBinary(true) {}
|
||||
BinaryRef(StringRef HexData) : HexData(HexData), isBinary(false) {}
|
||||
BinaryRef(ArrayRef<uint8_t> Data) : Data(Data), isBinary(true) {}
|
||||
BinaryRef(StringRef Data)
|
||||
: Data(reinterpret_cast<const uint8_t *>(Data.data()), Data.size()),
|
||||
isBinary(false) {}
|
||||
BinaryRef() : isBinary(false) {}
|
||||
StringRef getHex() const {
|
||||
assert(!isBinary);
|
||||
return HexData;
|
||||
return StringRef(reinterpret_cast<const char*>(Data.data()), Data.size());
|
||||
}
|
||||
ArrayRef<uint8_t> getBinary() const {
|
||||
assert(isBinary);
|
||||
return BinaryData;
|
||||
return Data;
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user