Debugger: Minor fix to CLanguageTokenizer.
- Properly differentiate the size of a parsed hex constant in order to return a correspondingly sized primitive, rather than always returning as 64-bit.
This commit is contained in:
@@ -441,8 +441,15 @@ Tokenizer::_ParseHexOperand()
|
|||||||
fCurrentToken = Token(begin, length, _CurrentPos() - length,
|
fCurrentToken = Token(begin, length, _CurrentPos() - length,
|
||||||
TOKEN_CONSTANT);
|
TOKEN_CONSTANT);
|
||||||
|
|
||||||
fCurrentToken.value.SetTo((int64)strtoull(
|
if (length <= 10) {
|
||||||
|
// including the leading 0x, a 32-bit constant will be at most
|
||||||
|
// 10 characters. Anything larger, and 64 is necessary.
|
||||||
|
fCurrentToken.value.SetTo((uint32)strtoul(
|
||||||
fCurrentToken.string.String(), NULL, 16));
|
fCurrentToken.string.String(), NULL, 16));
|
||||||
|
} else {
|
||||||
|
fCurrentToken.value.SetTo((uint64)strtoull(
|
||||||
|
fCurrentToken.string.String(), NULL, 16));
|
||||||
|
}
|
||||||
return fCurrentToken;
|
return fCurrentToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user