diff --git a/Common/StringUtils.cpp b/Common/StringUtils.cpp index e3d67c5a78..c4b88c4c3a 100644 --- a/Common/StringUtils.cpp +++ b/Common/StringUtils.cpp @@ -55,6 +55,10 @@ void truncate_cpy(char *dest, size_t destSize, const char *src) { } } +const char* safe_string(const char* s) { + return s ? s : "(null)"; +} + long parseHexLong(std::string s) { long value = 0; diff --git a/Common/StringUtils.h b/Common/StringUtils.h index 696018e35d..989fe8b9fd 100644 --- a/Common/StringUtils.h +++ b/Common/StringUtils.h @@ -84,6 +84,8 @@ inline void truncate_cpy(char(&out)[Count], const char *src) { truncate_cpy(out, Count, src); } +const char* safe_string(const char* s); + long parseHexLong(std::string s); long parseLong(std::string s); std::string StringFromFormat(const char* format, ...); diff --git a/Core/HLE/sceNp2.cpp b/Core/HLE/sceNp2.cpp index 166029bad4..98a50b1fa8 100644 --- a/Core/HLE/sceNp2.cpp +++ b/Core/HLE/sceNp2.cpp @@ -80,7 +80,7 @@ static int sceNpMatching2Term() static int sceNpMatching2CreateContext(u32 communicationIdPtr, u32 passPhrasePtr, u32 ctxIdPtr, int unknown) { - ERROR_LOG(SCENET, "UNIMPL %s(%08x[%s], %08x[%08x], %08x[%hu], %i) at %08x", __FUNCTION__, communicationIdPtr, Memory::GetCharPointer(communicationIdPtr), passPhrasePtr, Memory::Read_U32(passPhrasePtr), ctxIdPtr, Memory::Read_U16(ctxIdPtr), unknown, currentMIPS->pc); + ERROR_LOG(SCENET, "UNIMPL %s(%08x[%s], %08x[%08x], %08x[%hu], %i) at %08x", __FUNCTION__, communicationIdPtr, safe_string(Memory::GetCharPointer(communicationIdPtr)), passPhrasePtr, Memory::Read_U32(passPhrasePtr), ctxIdPtr, Memory::Read_U16(ctxIdPtr), unknown, currentMIPS->pc); if (!npMatching2Inited) return hleLogError(SCENET, SCE_NP_MATCHING2_ERROR_NOT_INITIALIZED);