diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index 21ccf753c..a78c5f64c 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp @@ -502,8 +502,8 @@ Result Process::Map(VAddr target, VAddr source, u32 size, VMAPermission perms, b VMAPermission source_perm = privileged ? VMAPermission::None : VMAPermission::ReadWrite; // Mark source region as Aliased - CASCADE_CODE(vm_manager.ChangeMemoryState(source, size, MemoryState::Private, - VMAPermission::ReadWrite, source_state, source_perm)); + R_TRY(vm_manager.ChangeMemoryState(source, size, MemoryState::Private, VMAPermission::ReadWrite, + source_state, source_perm)); CASCADE_RESULT(auto backing_blocks, vm_manager.GetBackingBlocksForRange(source, size)); VAddr interval_target = target; @@ -549,11 +549,11 @@ Result Process::Unmap(VAddr target, VAddr source, u32 size, VMAPermission perms, MemoryState source_state = privileged ? MemoryState::Locked : MemoryState::Aliased; - CASCADE_CODE(vm_manager.UnmapRange(target, size)); + R_TRY(vm_manager.UnmapRange(target, size)); // Change back source region state. Note that the permission is reprotected according to param - CASCADE_CODE(vm_manager.ChangeMemoryState(source, size, source_state, VMAPermission::None, - MemoryState::Private, perms)); + R_TRY(vm_manager.ChangeMemoryState(source, size, source_state, VMAPermission::None, + MemoryState::Private, perms)); return ResultSuccess; } diff --git a/src/core/hle/kernel/shared_memory.cpp b/src/core/hle/kernel/shared_memory.cpp index ba4888088..af27b9002 100644 --- a/src/core/hle/kernel/shared_memory.cpp +++ b/src/core/hle/kernel/shared_memory.cpp @@ -67,9 +67,9 @@ ResultVal> KernelSystem::CreateSharedMemory( auto& vm_manager = owner_process->vm_manager; // The memory is already available and mapped in the owner process. - CASCADE_CODE(vm_manager.ChangeMemoryState(address, size, MemoryState::Private, - VMAPermission::ReadWrite, MemoryState::Locked, - SharedMemory::ConvertPermissions(permissions))); + R_TRY(vm_manager.ChangeMemoryState(address, size, MemoryState::Private, + VMAPermission::ReadWrite, MemoryState::Locked, + SharedMemory::ConvertPermissions(permissions))); auto backing_blocks = vm_manager.GetBackingBlocksForRange(address, size); ASSERT(backing_blocks.Succeeded()); // should success after verifying memory state above diff --git a/src/core/hle/result.h b/src/core/hle/result.h index 6b199b195..3c7a9c855 100644 --- a/src/core/hle/result.h +++ b/src/core/hle/result.h @@ -400,15 +400,6 @@ private: return CONCAT2(check_result_L, __LINE__).Code(); \ target = std::move(*CONCAT2(check_result_L, __LINE__)) -/** - * Analogous to CASCADE_RESULT, but for a bare Result. The code will be propagated if - * non-success, or discarded otherwise. - */ -#define CASCADE_CODE(source) \ - auto CONCAT2(check_result_L, __LINE__) = source; \ - if (CONCAT2(check_result_L, __LINE__).IsError()) \ - return CONCAT2(check_result_L, __LINE__); - #define R_SUCCEEDED(res) (static_cast(res).IsSuccess()) #define R_FAILED(res) (static_cast(res).IsError()) diff --git a/src/core/hle/service/soc/soc_u.cpp b/src/core/hle/service/soc/soc_u.cpp index f5f02aa05..d1985a32e 100644 --- a/src/core/hle/service/soc/soc_u.cpp +++ b/src/core/hle/service/soc/soc_u.cpp @@ -985,7 +985,7 @@ void SOC_U::Accept(Kernel::HLERequestContext& ctx) { static_cast(async_data->ret)); IPC::RequestBuilder rb(ctx, 0x04, 2, 2); - rb.Push(RESULT_SUCCESS); + rb.Push(ResultSuccess); rb.Push(async_data->ret); rb.PushStaticBuffer(std::move(ctr_addr_buf), 0); }); @@ -1649,7 +1649,7 @@ void SOC_U::GetHostByAddr(Kernel::HLERequestContext& ctx) { ::gethostbyaddr(reinterpret_cast(&platform_addr), sizeof(platform_addr), type); IPC::RequestBuilder rb = rp.MakeBuilder(2, 2); - rb.Push(RESULT_SUCCESS); + rb.Push(ResultSuccess); s32 ret; if (!result) { rb.Push(ret = TranslateError(GET_ERRNO)); @@ -1670,7 +1670,7 @@ void SOC_U::GetHostByName(Kernel::HLERequestContext& ctx) { struct hostent* result = ::gethostbyname(reinterpret_cast(host_name.data())); IPC::RequestBuilder rb = rp.MakeBuilder(2, 2); - rb.Push(RESULT_SUCCESS); + rb.Push(ResultSuccess); s32 ret; if (!result) { rb.Push(ret = TranslateError(GET_ERRNO)); @@ -1772,7 +1772,7 @@ void SOC_U::Connect(Kernel::HLERequestContext& ctx) { async_data->socket_handle, static_cast(async_data->ret)); IPC::RequestBuilder rb(ctx, 0x06, 2, 0); - rb.Push(RESULT_SUCCESS); + rb.Push(ResultSuccess); rb.Push(async_data->ret); }); } @@ -1783,7 +1783,7 @@ void SOC_U::InitializeSockets(Kernel::HLERequestContext& ctx) { const u32 pid = rp.PopPID(); [[maybe_unused]] auto shared_memory = rp.PopObject(); - ResultCode res = RESULT_SUCCESS; + ResultCode res = ResultSuccess; if (initialized_processes.find(pid) == initialized_processes.end()) { initialized_processes.insert(pid); } else { @@ -2091,7 +2091,7 @@ void SOC_U::SendToMultiple(Kernel::HLERequestContext& ctx) { static_cast(ret)); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); - rb.Push(RESULT_SUCCESS); + rb.Push(ResultSuccess); rb.Push(ret); } @@ -2111,7 +2111,7 @@ void SOC_U::CloseSockets(Kernel::HLERequestContext& ctx) { LOG_DEBUG(Service_SOC, "called, pid={}", pid); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); - rb.Push(RESULT_SUCCESS); + rb.Push(ResultSuccess); } void SOC_U::AddGlobalSocket(Kernel::HLERequestContext& ctx) { @@ -2133,7 +2133,7 @@ void SOC_U::AddGlobalSocket(Kernel::HLERequestContext& ctx) { LOG_DEBUG(Service_SOC, "called, pid={}, fd={}", pid, socket_handle); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); - rb.Push(RESULT_SUCCESS); + rb.Push(ResultSuccess); } SOC_U::SOC_U() : ServiceFramework("soc:U", 18) {