diff --git a/src/newgrf.cpp b/src/newgrf.cpp --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -2651,12 +2651,9 @@ static ChangeInfoResult LoadTranslationT */ static std::string ReadDWordAsString(ByteReader *reader) { - char output[5]; - for (int i = 0; i < 4; i++) output[i] = reader->ReadByte(); - output[4] = '\0'; - StrMakeValidInPlace(output, lastof(output)); - - return std::string(output); + std::string output; + for (int i = 0; i < 4; i++) output.push_back(reader->ReadByte()); + return StrMakeValid(output); } /** diff --git a/src/saveload/gamelog_sl.cpp b/src/saveload/gamelog_sl.cpp --- a/src/saveload/gamelog_sl.cpp +++ b/src/saveload/gamelog_sl.cpp @@ -68,8 +68,7 @@ public: SlObject(lc, this->GetLoadDescription()); if (IsSavegameVersionBefore(SLV_STRING_GAMELOG)) { - StrMakeValidInPlace(SlGamelogRevision::revision_text, lastof(SlGamelogRevision::revision_text)); - static_cast(lc)->text = SlGamelogRevision::revision_text; + static_cast(lc)->text = StrMakeValid(std::string_view(SlGamelogRevision::revision_text, lengthof(SlGamelogRevision::revision_text))); } } diff --git a/src/script/script_instance.cpp b/src/script/script_instance.cpp --- a/src/script/script_instance.cpp +++ b/src/script/script_instance.cpp @@ -573,8 +573,7 @@ bool ScriptInstance::IsPaused() SlObject(nullptr, _script_byte); static char buf[std::numeric_limits::max()]; SlCopy(buf, _script_sl_byte, SLE_CHAR); - StrMakeValidInPlace(buf, buf + _script_sl_byte); - if (data != nullptr) data->push_back(std::string(buf)); + if (data != nullptr) data->push_back(StrMakeValid(std::string_view(buf, _script_sl_byte))); return true; }