From d7e4371fd3146ac6167bc4266090b213cf470505 Mon Sep 17 00:00:00 2001 From: Caball009 <82909616+Caball009@users.noreply.github.com> Date: Thu, 11 Dec 2025 19:05:03 +0100 Subject: [PATCH] bugfix(string): Allow startsWith and endsWith to be called on empty strings --- Core/GameEngine/Source/Common/System/AsciiString.cpp | 8 ++++---- Core/GameEngine/Source/Common/System/UnicodeString.cpp | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Core/GameEngine/Source/Common/System/AsciiString.cpp b/Core/GameEngine/Source/Common/System/AsciiString.cpp index 9828f7f1e20..31567ec5335 100644 --- a/Core/GameEngine/Source/Common/System/AsciiString.cpp +++ b/Core/GameEngine/Source/Common/System/AsciiString.cpp @@ -477,25 +477,25 @@ void AsciiString::format_va(const char* format, va_list args) // ----------------------------------------------------- Bool AsciiString::startsWith(const char* p) const { - return ::startsWith(peek(), p); + return m_data && ::startsWith(peek(), p); } // ----------------------------------------------------- Bool AsciiString::startsWithNoCase(const char* p) const { - return ::startsWithNoCase(peek(), p); + return m_data && ::startsWithNoCase(peek(), p); } // ----------------------------------------------------- Bool AsciiString::endsWith(const char* p) const { - return ::endsWith(peek(), p); + return m_data && ::endsWith(peek(), p); } // ----------------------------------------------------- Bool AsciiString::endsWithNoCase(const char* p) const { - return ::endsWithNoCase(peek(), p); + return m_data && ::endsWithNoCase(peek(), p); } //----------------------------------------------------------------------------- diff --git a/Core/GameEngine/Source/Common/System/UnicodeString.cpp b/Core/GameEngine/Source/Common/System/UnicodeString.cpp index cb8669da34a..af1a6317e3f 100644 --- a/Core/GameEngine/Source/Common/System/UnicodeString.cpp +++ b/Core/GameEngine/Source/Common/System/UnicodeString.cpp @@ -409,25 +409,25 @@ void UnicodeString::format_va(const WideChar* format, va_list args) // ----------------------------------------------------- Bool UnicodeString::startsWith(const WideChar* p) const { - return ::startsWith(peek(), p); + return m_data && ::startsWith(peek(), p); } // ----------------------------------------------------- Bool UnicodeString::startsWithNoCase(const WideChar* p) const { - return ::startsWithNoCase(peek(), p); + return m_data && ::startsWithNoCase(peek(), p); } // ----------------------------------------------------- Bool UnicodeString::endsWith(const WideChar* p) const { - return ::endsWith(peek(), p); + return m_data && ::endsWith(peek(), p); } // ----------------------------------------------------- Bool UnicodeString::endsWithNoCase(const WideChar* p) const { - return ::endsWithNoCase(peek(), p); + return m_data && ::endsWithNoCase(peek(), p); } //-----------------------------------------------------------------------------