diff options
author | Littleboy | 2011-06-23 05:42:48 -0400 |
---|---|---|
committer | Littleboy | 2011-06-23 08:52:52 -0400 |
commit | b694a78f62a02253bca2a5611314599ae7fce725 (patch) | |
tree | 115573b00e3b025ed334f9eadeadfb6161286089 /engines/parallaction | |
parent | 7a96e0bfb67e9b5b8c0aa9bdae8415fb98214c3f (diff) | |
download | scummvm-rg350-b694a78f62a02253bca2a5611314599ae7fce725.tar.gz scummvm-rg350-b694a78f62a02253bca2a5611314599ae7fce725.tar.bz2 scummvm-rg350-b694a78f62a02253bca2a5611314599ae7fce725.zip |
ANALYSIS: Add static casts to is* functions
This fixes a potential problem with passing char values that would be sign-extended and yield unexpected results.
See http://msdn.microsoft.com/en-us/library/ms245348.aspx
Diffstat (limited to 'engines/parallaction')
-rw-r--r-- | engines/parallaction/parser_br.cpp | 12 | ||||
-rw-r--r-- | engines/parallaction/parser_ns.cpp | 2 |
2 files changed, 7 insertions, 7 deletions
diff --git a/engines/parallaction/parser_br.cpp b/engines/parallaction/parser_br.cpp index f53d71caec..df53ecca3f 100644 --- a/engines/parallaction/parser_br.cpp +++ b/engines/parallaction/parser_br.cpp @@ -524,14 +524,14 @@ DECLARE_COMMAND_PARSER(location) { ctxt.cmd->_startPos.x = -1000; ctxt.cmd->_startPos2.x = -1000; if (_tokens[ctxt.nextToken][0] != '\0') { - if (isdigit(_tokens[ctxt.nextToken][0]) || _tokens[ctxt.nextToken][0] == '-') { + if (isdigit(static_cast<unsigned char>(_tokens[ctxt.nextToken][0])) || _tokens[ctxt.nextToken][0] == '-') { ctxt.cmd->_startPos.x = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; ctxt.cmd->_startPos.y = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; } - if (isdigit(_tokens[ctxt.nextToken][0]) || _tokens[ctxt.nextToken][0] == '-') { + if (isdigit(static_cast<unsigned char>(_tokens[ctxt.nextToken][0])) || _tokens[ctxt.nextToken][0] == '-') { ctxt.cmd->_startPos2.x = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; ctxt.cmd->_startPos2.y = atoi(_tokens[ctxt.nextToken]); @@ -677,7 +677,7 @@ DECLARE_COMMAND_PARSER(text) { createCommand(_parser->_lookup); - if (isdigit(_tokens[1][1])) { + if (isdigit(static_cast<unsigned char>(_tokens[1][1]))) { ctxt.cmd->_zeta0 = atoi(_tokens[1]); ctxt.nextToken++; } else { @@ -714,7 +714,7 @@ DECLARE_COMMAND_PARSER(unary) { DECLARE_ZONE_PARSER(limits) { debugC(7, kDebugParser, "ZONE_PARSER(limits) "); - if (isalpha(_tokens[1][1])) { + if (isalpha(static_cast<unsigned char>(_tokens[1][1]))) { ctxt.z->_flags |= kFlagsAnimLinked; ctxt.z->_linkedName = _tokens[1]; } else { @@ -1003,7 +1003,7 @@ DECLARE_INSTRUCTION_PARSER(text) { int _si = 1; - if (isdigit(_tokens[1][1])) { + if (isdigit(static_cast<unsigned char>(_tokens[1][1]))) { ctxt.inst->_y = atoi(_tokens[1]); _si = 2; } else { @@ -1066,7 +1066,7 @@ DECLARE_INSTRUCTION_PARSER(endif) { void ProgramParser_br::parseRValue(ScriptVar &v, const char *str) { - if (isdigit(str[0]) || str[0] == '-') { + if (isdigit(static_cast<unsigned char>(str[0])) || str[0] == '-') { v.setImmediate(atoi(str)); return; } diff --git a/engines/parallaction/parser_ns.cpp b/engines/parallaction/parser_ns.cpp index 213f0ae191..100b608172 100644 --- a/engines/parallaction/parser_ns.cpp +++ b/engines/parallaction/parser_ns.cpp @@ -534,7 +534,7 @@ DECLARE_INSTRUCTION_PARSER(endscript) { void ProgramParser_ns::parseRValue(ScriptVar &v, const char *str) { - if (isdigit(str[0]) || str[0] == '-') { + if (isdigit(static_cast<unsigned char>(str[0])) || str[0] == '-') { v.setImmediate(atoi(str)); return; } |