mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-01 15:48:21 +00:00
Optimize llDumpList2String(expr, "") to (string)expr.
It works on all VMs and it's always a gain, so it's not worth adding an option to deactivate it.
This commit is contained in:
parent
b4d9d5bc8c
commit
b5994b79fe
1 changed files with 8 additions and 0 deletions
|
@ -1009,6 +1009,14 @@ class foldconst(object):
|
|||
# Convert llGetListLength(expr) to (expr != [])
|
||||
node = {'nt':'CONST', 't':'list', 'value':[]}
|
||||
parent[index] = node = {'nt':'!=', 't':'list', 'ch':[child[0], node]}
|
||||
elif (node['name'] == 'llDumpList2String'
|
||||
and child[1]['nt'] == 'CONST'
|
||||
and child[1]['t'] in ('string', 'key')
|
||||
and child[1]['value'] == u""):
|
||||
# Convert llDumpList2String(expr, "") to (string)(expr)
|
||||
del child[1]
|
||||
node['nt'] = 'CAST'
|
||||
del node['name']
|
||||
elif SEFargs and 'SEF' in self.symtab[0][node['name']]:
|
||||
# The function is marked as SEF in the symbol table, and the
|
||||
# arguments are all side-effect-free. The result is SEF.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue