Эх сурвалжийг харах

pl_u: Use kernel physical memory

Zach Hilman 6 жил өмнө
parent
commit
36d829c27b

+ 7 - 4
src/core/file_sys/system_archive/shared_font.cpp

@@ -18,13 +18,16 @@ namespace {
 
 template <std::size_t Size>
 VirtualFile PackBFTTF(const std::array<u8, Size>& data, const std::string& name) {
-    std::vector<u32> vec(Size / sizeof(u32));
-    std::memcpy(vec.data(), data.data(), vec.size() * sizeof(u32));
+    std::vector<u8> vec(Size);
+    std::memcpy(vec.data(), data.data(), vec.size());
 
-    std::vector<u8> bfttf(Size + sizeof(u64));
+    Kernel::PhysicalMemory bfttf(Size + sizeof(u64));
 
     Service::NS::EncryptSharedFont(vec, bfttf);
-    return std::make_shared<VectorVfsFile>(std::move(bfttf), name);
+
+    std::vector<u8> bfttf_vec(Size + sizeof(u64));
+    std::memcpy(bfttf_vec.data(), bfttf.data(), bfttf_vec.size());
+    return std::make_shared<VectorVfsFile>(std::move(bfttf_vec), name);
 }
 
 } // Anonymous namespace

+ 1 - 0
src/core/hle/service/ns/pl_u.h

@@ -5,6 +5,7 @@
 #pragma once
 
 #include <memory>
+#include "core/hle/kernel/physical_memory.h"
 #include "core/hle/service/service.h"
 
 namespace Service {