summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Lioncash2019-04-03 16:35:14 -0400
committerGravatar Lioncash2019-04-03 17:49:21 -0400
commitea8f633dc088ca5e40d3391d1b826c753a94bf26 (patch)
treeeb0c33347f98e7adf52511f17f78ef1c43bdfc64
parentkernel/transfer_memory: Add accessors to data and sizes (diff)
downloadyuzu-ea8f633dc088ca5e40d3391d1b826c753a94bf26.tar.gz
yuzu-ea8f633dc088ca5e40d3391d1b826c753a94bf26.tar.xz
yuzu-ea8f633dc088ca5e40d3391d1b826c753a94bf26.zip
service/am: Correct behavior of CreateTransferMemoryStorage()
For whatever reason, shared memory was being used here instead of transfer memory, which (quite clearly) will not work based off the name of the function. This corrects this wonky usage of shared memory.
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/am/am.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp
index 9c44e27c6..7d3e0e545 100644
--- a/src/core/hle/service/am/am.cpp
+++ b/src/core/hle/service/am/am.cpp
@@ -13,7 +13,7 @@
13#include "core/hle/kernel/kernel.h" 13#include "core/hle/kernel/kernel.h"
14#include "core/hle/kernel/process.h" 14#include "core/hle/kernel/process.h"
15#include "core/hle/kernel/readable_event.h" 15#include "core/hle/kernel/readable_event.h"
16#include "core/hle/kernel/shared_memory.h" 16#include "core/hle/kernel/transfer_memory.h"
17#include "core/hle/kernel/writable_event.h" 17#include "core/hle/kernel/writable_event.h"
18#include "core/hle/service/acc/profile_manager.h" 18#include "core/hle/service/acc/profile_manager.h"
19#include "core/hle/service/am/am.h" 19#include "core/hle/service/am/am.h"
@@ -907,19 +907,19 @@ void ILibraryAppletCreator::CreateTransferMemoryStorage(Kernel::HLERequestContex
907 rp.SetCurrentOffset(3); 907 rp.SetCurrentOffset(3);
908 const auto handle{rp.Pop<Kernel::Handle>()}; 908 const auto handle{rp.Pop<Kernel::Handle>()};
909 909
910 const auto shared_mem = 910 const auto transfer_mem =
911 Core::System::GetInstance().CurrentProcess()->GetHandleTable().Get<Kernel::SharedMemory>( 911 Core::System::GetInstance().CurrentProcess()->GetHandleTable().Get<Kernel::TransferMemory>(
912 handle); 912 handle);
913 913
914 if (shared_mem == nullptr) { 914 if (transfer_mem == nullptr) {
915 LOG_ERROR(Service_AM, "shared_mem is a nullpr for handle={:08X}", handle); 915 LOG_ERROR(Service_AM, "shared_mem is a nullpr for handle={:08X}", handle);
916 IPC::ResponseBuilder rb{ctx, 2}; 916 IPC::ResponseBuilder rb{ctx, 2};
917 rb.Push(ResultCode(-1)); 917 rb.Push(ResultCode(-1));
918 return; 918 return;
919 } 919 }
920 920
921 const u8* mem_begin = shared_mem->GetPointer(); 921 const u8* const mem_begin = transfer_mem->GetPointer();
922 const u8* mem_end = mem_begin + shared_mem->GetSize(); 922 const u8* const mem_end = mem_begin + transfer_mem->GetSize();
923 std::vector<u8> memory{mem_begin, mem_end}; 923 std::vector<u8> memory{mem_begin, mem_end};
924 924
925 IPC::ResponseBuilder rb{ctx, 2, 0, 1}; 925 IPC::ResponseBuilder rb{ctx, 2, 0, 1};