- Added a static contextTask task reference instead of an iterator that
  domSource cannot dereference.  Idiot.
This commit is contained in:
Paul Beckingham
2014-05-24 13:33:15 -04:00
parent b7d7646c28
commit 2a72d0f1d6

View File

@@ -37,20 +37,19 @@ extern Context context;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Const iterator that can be derefenced into a Task by domSource. // Const iterator that can be derefenced into a Task by domSource.
static std::vector <Task>::const_iterator contextTask; static Task dummy;
static Task& contextTask = dummy;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
static bool domSource (const std::string& identifier, Variant& value) static bool domSource (const std::string& identifier, Variant& value)
{ {
std::string stringValue = context.dom.get (identifier, *contextTask); std::string stringValue = context.dom.get (identifier, contextTask);
if (stringValue != identifier) if (stringValue != identifier)
{ {
// std::cout << "# domSource " << identifier << " -> " << stringValue << "\n";
value = Variant (stringValue); value = Variant (stringValue);
return true; return true;
} }
// std::cout << "# domSource " << identifier << " -> ?\n";
return false; return false;
} }
@@ -107,7 +106,8 @@ void Filter::subset (const std::vector <Task>& input, std::vector <Task>& output
if (oldFilter) if (oldFilter)
output.push_back (*task); output.push_back (*task);
contextTask = task; // Set up context for any DOM references.
contextTask = *task;
Variant var; Variant var;
eval.evaluateCompiledExpression (var); eval.evaluateCompiledExpression (var);
@@ -169,7 +169,8 @@ void Filter::subset (std::vector <Task>& output)
if (oldFilter) if (oldFilter)
output.push_back (*task); output.push_back (*task);
contextTask = task; // Set up context for any DOM references.
contextTask = *task;
Variant var; Variant var;
eval.evaluateCompiledExpression (var); eval.evaluateCompiledExpression (var);
@@ -193,7 +194,8 @@ void Filter::subset (std::vector <Task>& output)
if (oldFilter) if (oldFilter)
output.push_back (*task); output.push_back (*task);
contextTask = task; // Set up context for any DOM references.
contextTask = *task;
Variant var; Variant var;
eval.evaluateCompiledExpression (var); eval.evaluateCompiledExpression (var);