diff options
Diffstat (limited to 'src/core/file_sys')
| -rw-r--r-- | src/core/file_sys/archive_backend.cpp | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/src/core/file_sys/archive_backend.cpp b/src/core/file_sys/archive_backend.cpp index 97adf0e12..cc0aa7022 100644 --- a/src/core/file_sys/archive_backend.cpp +++ b/src/core/file_sys/archive_backend.cpp @@ -19,22 +19,22 @@ Path::Path(LowPathType type, u32 size, u32 pointer) : type(type) {      switch (type) {      case Binary:      { -        u8* data = Memory::GetPointer(pointer); -        binary = std::vector<u8>(data, data + size); +        binary.resize(size); +        Memory::ReadBlock(pointer, binary.data(), binary.size());          break;      }      case Char:      { -        const char* data = reinterpret_cast<const char*>(Memory::GetPointer(pointer)); -        string = std::string(data, size - 1); // Data is always null-terminated. +        string.resize(size - 1); // Data is always null-terminated. +        Memory::ReadBlock(pointer, &string[0], string.size());          break;      }      case Wchar:      { -        const char16_t* data = reinterpret_cast<const char16_t*>(Memory::GetPointer(pointer)); -        u16str = std::u16string(data, size/2 - 1); // Data is always null-terminated. +        u16str.resize(size / 2 - 1); // Data is always null-terminated. +        Memory::ReadBlock(pointer, &u16str[0], u16str.size() * sizeof(char16_t));          break;      } | 
