mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-26 16:05:54 +00:00
Fix a bug introduced in r305092 on big-endian systems.
Summary: We were writing the length of the string based on system-endianness, and not universally little-endian. This fixes that. Reviewers: zturner Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D34159 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305322 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b4c8582172
commit
10b776df22
@ -691,10 +691,8 @@ void WindowsResourceCOFFWriter::writeDirectoryStringTable() {
|
||||
// Now write the directory string table for .rsrc$01
|
||||
uint32_t TotalStringTableSize = 0;
|
||||
for (auto String : StringTable) {
|
||||
auto *LengthField =
|
||||
reinterpret_cast<uint16_t *>(BufferStart + CurrentOffset);
|
||||
uint16_t Length = String.size();
|
||||
*LengthField = Length;
|
||||
support::endian::write16le(BufferStart + CurrentOffset, Length);
|
||||
CurrentOffset += sizeof(uint16_t);
|
||||
auto *Start = reinterpret_cast<UTF16 *>(BufferStart + CurrentOffset);
|
||||
std::copy(String.begin(), String.end(), Start);
|
||||
|
Loading…
x
Reference in New Issue
Block a user