]> granicus.if.org Git - llvm/commitdiff
[llvm-rc] Try again to fix errors on big endian systems.
authorZachary Turner <zturner@google.com>
Mon, 9 Oct 2017 22:59:40 +0000 (22:59 +0000)
committerZachary Turner <zturner@google.com>
Mon, 9 Oct 2017 22:59:40 +0000 (22:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315248 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-rc/ResourceFileWriter.cpp

index 3d72e16bf6e2f31fb0e5b530bd4ff581437a31be..1a9f4eba1898174c498c653630aade3f62ff0b19 100644 (file)
@@ -166,9 +166,7 @@ static Error processString(StringRef Str, NullHandlingMethod NullHandler,
       }
     }
 
-    // Make sure to write little-endian strings, regardless of the host
-    // byte-order.
-    Result.push_back(endian::byte_swap(Char, little));
+    Result.push_back(Char);
     return Error::success();
   };
 
@@ -1131,7 +1129,7 @@ Error ResourceFileWriter::writeMenuDefinitionList(
 Error ResourceFileWriter::writeMenuBody(const RCResource *Base) {
   // At first, MENUHEADER structure. In fact, these are two WORDs equal to 0.
   // Ref: msdn.microsoft.com/en-us/library/windows/desktop/ms648018.aspx
-  writeObject<uint32_t>(0);
+  writeInt<uint32_t>(0);
 
   return writeMenuDefinitionList(cast<MenuResource>(Base)->Elements);
 }
@@ -1250,9 +1248,9 @@ Error ResourceFileWriter::writeVersionInfoBlock(const VersionInfoBlock &Blk) {
   uint64_t LengthLoc;
 
   if (OutputHeader) {
-    LengthLoc = writeObject<uint16_t>(0);
-    writeObject<uint16_t>(0);
-    writeObject<uint16_t>(true);
+    LengthLoc = writeInt<uint16_t>(0);
+    writeInt<uint16_t>(0);
+    writeInt<uint16_t>(1); // true
     RETURN_IF_ERROR(writeCString(Blk.Name));
     padStream(sizeof(uint32_t));
   }
@@ -1304,9 +1302,9 @@ Error ResourceFileWriter::writeVersionInfoValue(const VersionInfoValue &Val) {
     return createError(Twine("VALUE ") + Val.Key +
                        " cannot contain both strings and integers");
 
-  auto LengthLoc = writeObject<uint16_t>(0);
-  auto ValLengthLoc = writeObject<uint16_t>(0);
-  writeObject<uint16_t>(HasStrings);
+  auto LengthLoc = writeInt<uint16_t>(0);
+  auto ValLengthLoc = writeInt<uint16_t>(0);
+  writeInt<uint16_t>(HasStrings);
   RETURN_IF_ERROR(writeCString(Val.Key));
   padStream(sizeof(uint32_t));