fixed buffer overrun and removed redundant function Token::str
This commit is contained in:
parent
67f5d666c7
commit
3db49aee71
|
@ -48,8 +48,16 @@ Token::~Token()
|
||||||
void Token::str(const std::string &s)
|
void Token::str(const std::string &s)
|
||||||
{
|
{
|
||||||
_str = s;
|
_str = s;
|
||||||
|
|
||||||
_isName = bool(_str[0] == '_' || std::isalpha(_str[0]));
|
_isName = bool(_str[0] == '_' || std::isalpha(_str[0]));
|
||||||
_isNumber = bool(std::isdigit(_str[(_str[0] == '-') ? 1 : 0]) != 0);
|
|
||||||
|
if (std::isdigit(_str[0]))
|
||||||
|
_isNumber = true;
|
||||||
|
else if (_str.length() > 1 && _str[0] == '-' && std::isdigit(_str[0]))
|
||||||
|
_isNumber = true;
|
||||||
|
else
|
||||||
|
_isNumber = false;
|
||||||
|
|
||||||
if (_str == "true" || _str == "false")
|
if (_str == "true" || _str == "false")
|
||||||
_isBoolean = true;
|
_isBoolean = true;
|
||||||
else
|
else
|
||||||
|
@ -58,11 +66,6 @@ void Token::str(const std::string &s)
|
||||||
_varId = 0;
|
_varId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Token::str(const char s[])
|
|
||||||
{
|
|
||||||
str(std::string(s));
|
|
||||||
}
|
|
||||||
|
|
||||||
void Token::concatStr(std::string const& b)
|
void Token::concatStr(std::string const& b)
|
||||||
{
|
{
|
||||||
_str.erase(_str.length() - 1);
|
_str.erase(_str.length() - 1);
|
||||||
|
|
|
@ -42,7 +42,6 @@ public:
|
||||||
~Token();
|
~Token();
|
||||||
|
|
||||||
void str(const std::string &s);
|
void str(const std::string &s);
|
||||||
void str(const char s[]);
|
|
||||||
|
|
||||||
void concatStr(std::string const& b);
|
void concatStr(std::string const& b);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue