From 2eda86bf2f2540d4c9eda255c5fae58d71b5b31f Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Sat, 2 Feb 2013 13:28:00 -0500 Subject: Fix bug assuming negative doubles will overflow a size_t, which failed on ARM. Related to #259 diff --git a/src/control.cc b/src/control.cc index bdd0f40..44847f5 100644 --- a/src/control.cc +++ b/src/control.cc @@ -96,8 +96,10 @@ AbstractNode *ControlModule::evaluate(const Context*, const ModuleInstantiation size_t n = 0; if (inst->argvalues.size() > 0) { double v; - if (inst->argvalues[0].getDouble(v)) - n = v; + if (inst->argvalues[0].getDouble(v)) { + if (v < 0) return NULL; // Disallow negative child indices + n = trunc(v); + } } for (int i = Context::ctx_stack.size()-1; i >= 0; i--) { const Context *c = Context::ctx_stack[i]; -- cgit v0.10.1