(svn r24982) -Fix [FS#5465]: [Script] Crash when passing too many parameters

This commit is contained in:
rubidium
2013-02-08 20:34:27 +00:00
parent bb225ae39e
commit 4e61c1770d
13 changed files with 151 additions and 121 deletions

View File

@@ -38,7 +38,7 @@
EnforcePrecondition(false, IsValidSign(sign_id));
EnforcePrecondition(false, name != NULL);
const char *text = name->GetEncodedText();
EnforcePrecondition(false, !::StrEmpty(text));
EnforcePreconditionEncodedText(false, text);
EnforcePreconditionCustomError(false, ::Utf8StringLength(text) < MAX_LENGTH_SIGN_NAME_CHARS, ScriptError::ERR_PRECONDITION_STRING_TOO_LONG);
return ScriptObject::DoCommand(0, sign_id, 0, CMD_RENAME_SIGN, text);
@@ -73,7 +73,7 @@
EnforcePrecondition(INVALID_SIGN, ::IsValidTile(location));
EnforcePrecondition(INVALID_SIGN, name != NULL);
const char *text = name->GetEncodedText();
EnforcePrecondition(INVALID_SIGN, !::StrEmpty(text));
EnforcePreconditionEncodedText(INVALID_SIGN, text);
EnforcePreconditionCustomError(INVALID_SIGN, ::Utf8StringLength(text) < MAX_LENGTH_SIGN_NAME_CHARS, ScriptError::ERR_PRECONDITION_STRING_TOO_LONG);
if (!ScriptObject::DoCommand(location, 0, 0, CMD_PLACE_SIGN, text, &ScriptInstance::DoCommandReturnSignID)) return INVALID_SIGN;