Use just a ArrayRef<uint8_t> to store both hex string and binary data.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 31 May 2013 21:03:51 +0000 (21:03 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 31 May 2013 21:03:51 +0000 (21:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183043 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Object/COFFYAML.h

index 25c4601a9725ed002b0c4b365bd59ed17e6c85f9..4c20260222f325b5860637d2436537b1d10d68f6 100644 (file)
@@ -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;
     }
   };