diff options
author | Marius Kintel <marius@kintel.net> | 2011-09-05 14:25:13 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2011-09-05 14:25:13 (GMT) |
commit | ea8a1a670c8eb5a24f36e6c282ba34f32eeea5f1 (patch) | |
tree | 6c0312fa40292238082ddbbf84e8ca6c1675ba7a /src/control.cc | |
parent | 81f9c7b5178adf3e7acd670914b7e01c65a0c6b8 (diff) |
bugfixes: Don't iterate over empty for loops, don't iterate over for loops with illegal values
Diffstat (limited to 'src/control.cc')
-rw-r--r-- | src/control.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/control.cc b/src/control.cc index 26458fb..01d7f03 100644 --- a/src/control.cc +++ b/src/control.cc @@ -79,11 +79,11 @@ void for_eval(AbstractNode &node, const ModuleInstantiation &inst, size_t l, for_eval(node, inst, l+1, call_argnames, call_argvalues, &c); } } - else { + else if (it_values.type != Value::UNDEFINED) { c.set_variable(it_name, it_values); for_eval(node, inst, l+1, call_argnames, call_argvalues, &c); } - } else { + } else if (l > 0) { std::vector<AbstractNode *> evaluatednodes = inst.evaluateChildren(arg_context); node.children.insert(node.children.end(), evaluatednodes.begin(), evaluatednodes.end()); } |