diff --git a/lslopt/lslinliner.py b/lslopt/lslinliner.py index 1a27bae..20411ee 100644 --- a/lslopt/lslinliner.py +++ b/lslopt/lslinliner.py @@ -427,9 +427,8 @@ class inliner(object): del child[2] del child[0] child[1].ch.append(nr(nt='JUMP', t=None, name=lbl, scope=scope)) - fns.extend(self.RecurseExpression(child, 0, scope)) + fns = self.RecurseExpression(child, 0, scope) self.RecurseSingleStatement(child, 1, scope) - #assert False, parent[index] else: assert False, u"Unexpected node type: %s" % nt.decode('utf8') diff --git a/unit_tests/regression.suite/inliner-for-bug.lsl b/unit_tests/regression.suite/inliner-for-bug.lsl new file mode 100644 index 0000000..083f261 --- /dev/null +++ b/unit_tests/regression.suite/inliner-for-bug.lsl @@ -0,0 +1,10 @@ +default +{ + state_entry() + { + for (; llSetRegionPos(<0,0,2>); llSleep(3)) + { + llSleep(4); + } + } +} diff --git a/unit_tests/regression.suite/inliner-for-bug.out b/unit_tests/regression.suite/inliner-for-bug.out new file mode 100644 index 0000000..63e681c --- /dev/null +++ b/unit_tests/regression.suite/inliner-for-bug.out @@ -0,0 +1,15 @@ +default +{ + state_entry() + { + @___for__00001; + if (llSetRegionPos(<0, 0, 2>)) + { + { + llSleep(4); + } + llSleep(3); + jump ___for__00001; + } + } +} diff --git a/unit_tests/regression.suite/inliner-for-bug.run b/unit_tests/regression.suite/inliner-for-bug.run new file mode 100644 index 0000000..caa165e --- /dev/null +++ b/unit_tests/regression.suite/inliner-for-bug.run @@ -0,0 +1 @@ +main.py -y -O clear,inline -