From 032ef799b8ca4d284a26562e9d58995e81861a98 Mon Sep 17 00:00:00 2001 From: Stephen Date: Sat, 11 Jan 2025 10:11:43 -0600 Subject: [PATCH] Address review comments --- src/core/libraries/np_common/np_common.cpp | 11 +++++++---- src/core/libraries/np_common/np_common.h | 9 +++------ src/core/libraries/np_common/np_common_error.h | 9 +++++++++ 3 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 src/core/libraries/np_common/np_common_error.h diff --git a/src/core/libraries/np_common/np_common.cpp b/src/core/libraries/np_common/np_common.cpp index d879f3af5..8b916d9b9 100644 --- a/src/core/libraries/np_common/np_common.cpp +++ b/src/core/libraries/np_common/np_common.cpp @@ -5,6 +5,7 @@ #include "core/libraries/error_codes.h" #include "core/libraries/libs.h" #include "core/libraries/np_common/np_common.h" +#include "core/libraries/np_common/np_common_error.h" namespace Libraries::NpCommon { @@ -14,7 +15,8 @@ int PS4_SYSV_ABI sceNpCmpNpId(OrbisNpId* np_id1, OrbisNpId* np_id2) { } // Compare data - if (std::strncmp(np_id1->handle.data, np_id2->handle.data, ORBIS_NP_ONLINEID_MAX_LENGTH) != 0) { + if (std::strncmp(reinterpret_cast(np_id1->handle.data), + reinterpret_cast(np_id2->handle.data), ORBIS_NP_ONLINEID_MAX_LENGTH) != 0) { return ORBIS_NP_UTIL_ERROR_NOT_MATCH; } @@ -41,8 +43,8 @@ int PS4_SYSV_ABI sceNpCmpNpIdInOrder(OrbisNpId* np_id1, OrbisNpId* np_id2, u32* } // Compare data - u32 compare = - std::strncmp(np_id1->handle.data, np_id2->handle.data, ORBIS_NP_ONLINEID_MAX_LENGTH); + u32 compare = std::strncmp(reinterpret_cast(np_id1->handle.data), + reinterpret_cast(np_id2->handle.data), ORBIS_NP_ONLINEID_MAX_LENGTH); if (compare < 0) { *out_result = -1; return ORBIS_OK; @@ -82,7 +84,8 @@ int PS4_SYSV_ABI sceNpCmpOnlineId(OrbisNpOnlineId* online_id1, OrbisNpOnlineId* return ORBIS_NP_ERROR_INVALID_ARGUMENT; } - if (std::strncmp(online_id1->data, online_id2->data, ORBIS_NP_ONLINEID_MAX_LENGTH) != 0) { + if (std::strncmp(reinterpret_cast(online_id1->data), + reinterpret_cast(online_id2->data), ORBIS_NP_ONLINEID_MAX_LENGTH) != 0) { return ORBIS_NP_UTIL_ERROR_NOT_MATCH; } return ORBIS_OK; diff --git a/src/core/libraries/np_common/np_common.h b/src/core/libraries/np_common/np_common.h index 68600251f..4e80ecd5f 100644 --- a/src/core/libraries/np_common/np_common.h +++ b/src/core/libraries/np_common/np_common.h @@ -11,15 +11,12 @@ class SymbolsResolver; namespace Libraries::NpCommon { -constexpr int ORBIS_NP_ERROR_INVALID_ARGUMENT = 0x80550003; -constexpr int ORBIS_NP_UTIL_ERROR_NOT_MATCH = 0x80550609; - constexpr int ORBIS_NP_ONLINEID_MAX_LENGTH = 16; struct OrbisNpOnlineId { - char data[ORBIS_NP_ONLINEID_MAX_LENGTH]; - char term; - char dummy[3]; + s8 data[ORBIS_NP_ONLINEID_MAX_LENGTH]; + s8 term; + s8 dummy[3]; }; struct OrbisNpId { diff --git a/src/core/libraries/np_common/np_common_error.h b/src/core/libraries/np_common/np_common_error.h new file mode 100644 index 000000000..5da6e6a90 --- /dev/null +++ b/src/core/libraries/np_common/np_common_error.h @@ -0,0 +1,9 @@ +// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "core/libraries/error_codes.h" + +constexpr int ORBIS_NP_ERROR_INVALID_ARGUMENT = 0x80550003; +constexpr int ORBIS_NP_UTIL_ERROR_NOT_MATCH = 0x80550609; \ No newline at end of file