Fix crash on invalid string converted to managed string

This commit is contained in:
Wojtek Figat
2024-02-26 19:01:46 +01:00
parent 253f7cfce8
commit f4d236d353

View File

@@ -99,44 +99,50 @@ MString* MUtils::ToString(const char* str)
MString* MUtils::ToString(const StringAnsi& str)
{
if (str.IsEmpty())
const int32 len = str.Length();
if (len <= 0)
return MCore::String::GetEmpty();
return MCore::String::New(str.Get(), str.Length());
return MCore::String::New(str.Get(), len);
}
MString* MUtils::ToString(const String& str)
{
if (str.IsEmpty())
const int32 len = str.Length();
if (len <= 0)
return MCore::String::GetEmpty();
return MCore::String::New(str.Get(), str.Length());
return MCore::String::New(str.Get(), len);
}
MString* MUtils::ToString(const String& str, MDomain* domain)
{
if (str.IsEmpty())
const int32 len = str.Length();
if (len <= 0)
return MCore::String::GetEmpty(domain);
return MCore::String::New(str.Get(), str.Length(), domain);
return MCore::String::New(str.Get(), len, domain);
}
MString* MUtils::ToString(const StringAnsiView& str)
{
if (str.IsEmpty())
const int32 len = str.Length();
if (len <= 0)
return MCore::String::GetEmpty();
return MCore::String::New(str.Get(), str.Length());
}
MString* MUtils::ToString(const StringView& str)
{
if (str.IsEmpty())
const int32 len = str.Length();
if (len <= 0)
return MCore::String::GetEmpty();
return MCore::String::New(str.Get(), str.Length());
return MCore::String::New(str.Get(), len);
}
MString* MUtils::ToString(const StringView& str, MDomain* domain)
{
if (str.IsEmpty())
const int32 len = str.Length();
if (len <= 0)
return MCore::String::GetEmpty(domain);
return MCore::String::New(str.Get(), str.Length(), domain);
return MCore::String::New(str.Get(), len, domain);
}
ScriptingTypeHandle MUtils::UnboxScriptingTypeHandle(MTypeObject* value)