From 2a72d0f1d6597b454e4d2e98c7a3a24f777432cb Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 24 May 2014 13:33:15 -0400 Subject: [PATCH] Filter - Added a static contextTask task reference instead of an iterator that domSource cannot dereference. Idiot. --- src/Filter.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Filter.cpp b/src/Filter.cpp index 83cca4d56..79aad11a6 100644 --- a/src/Filter.cpp +++ b/src/Filter.cpp @@ -37,20 +37,19 @@ extern Context context; //////////////////////////////////////////////////////////////////////////////// // Const iterator that can be derefenced into a Task by domSource. -static std::vector ::const_iterator contextTask; +static Task dummy; +static Task& contextTask = dummy; //////////////////////////////////////////////////////////////////////////////// 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) { -// std::cout << "# domSource " << identifier << " -> " << stringValue << "\n"; value = Variant (stringValue); return true; } -// std::cout << "# domSource " << identifier << " -> ?\n"; return false; } @@ -107,7 +106,8 @@ void Filter::subset (const std::vector & input, std::vector & output if (oldFilter) output.push_back (*task); - contextTask = task; + // Set up context for any DOM references. + contextTask = *task; Variant var; eval.evaluateCompiledExpression (var); @@ -169,7 +169,8 @@ void Filter::subset (std::vector & output) if (oldFilter) output.push_back (*task); - contextTask = task; + // Set up context for any DOM references. + contextTask = *task; Variant var; eval.evaluateCompiledExpression (var); @@ -193,7 +194,8 @@ void Filter::subset (std::vector & output) if (oldFilter) output.push_back (*task); - contextTask = task; + // Set up context for any DOM references. + contextTask = *task; Variant var; eval.evaluateCompiledExpression (var);