mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-01 23:58:20 +00:00
More 32-bit negation-related overflow hazards patched.
Per bug report by Tonaie Resident.
This commit is contained in:
parent
960cbfaa09
commit
73599e0b04
1 changed files with 5 additions and 3 deletions
|
@ -837,7 +837,7 @@ class parser(object):
|
||||||
if self.tok[0] in ('INTEGER_VALUE', 'FLOAT_VALUE'):
|
if self.tok[0] in ('INTEGER_VALUE', 'FLOAT_VALUE'):
|
||||||
val = self.tok[1]
|
val = self.tok[1]
|
||||||
self.NextToken()
|
self.NextToken()
|
||||||
return nr(nt=CONST, value=-val,
|
return nr(nt=CONST, value=lslfuncs.neg(val),
|
||||||
t='integer' if type(val) == int else 'float')
|
t='integer' if type(val) == int else 'float')
|
||||||
raise EParseSyntax(self)
|
raise EParseSyntax(self)
|
||||||
if tok0 == 'INTEGER_VALUE':
|
if tok0 == 'INTEGER_VALUE':
|
||||||
|
@ -1294,10 +1294,12 @@ list lazy_list_set(list L, integer i, list v)
|
||||||
if self.tok[0] == '-':
|
if self.tok[0] == '-':
|
||||||
self.NextToken()
|
self.NextToken()
|
||||||
if self.tok[0] == 'INTEGER_VALUE':
|
if self.tok[0] == 'INTEGER_VALUE':
|
||||||
expr = nr(nt='CONST', t='integer', value=-self.tok[1])
|
expr = nr(nt='CONST', t='integer',
|
||||||
|
value=lslfuncs.neg(self.tok[1]))
|
||||||
self.NextToken()
|
self.NextToken()
|
||||||
elif self.tok[0] == 'FLOAT_VALUE':
|
elif self.tok[0] == 'FLOAT_VALUE':
|
||||||
expr = nr(nt='CONST', t='float', value=-self.tok[1])
|
expr = nr(nt='CONST', t='float',
|
||||||
|
value=lslfuncs.neg(self.tok[1]))
|
||||||
self.NextToken()
|
self.NextToken()
|
||||||
else:
|
else:
|
||||||
expr = self.Parse_unary_expression(AllowAssignment = False)
|
expr = self.Parse_unary_expression(AllowAssignment = False)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue