diff options
Diffstat (limited to 'project2/if.cpp')
-rw-r--r-- | project2/if.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/project2/if.cpp b/project2/if.cpp index 01368cc..3474815 100644 --- a/project2/if.cpp +++ b/project2/if.cpp @@ -46,7 +46,7 @@ If::If(const xmlpp::Element * e) : localErrorHandling(e->get_attribute_value("errorHandling") == "local") { LoaderBase loader(ApplicationEngine::getCurrent()->env()->getXmlNamespace(), true); - loader.supportedStorers.insert(Storer::into(&subNOEs)); + loader.supportedStorers.insert(new NOEErrorStorer(&normNOEs, &errorNOEs)); loader.supportedStorers.insert(Storer::into(&subViews)); loader.collectAll(e, true, IgnoreUnsupported); } @@ -73,17 +73,13 @@ If::execute() const if (passes()) { Logger()->message(LOG_DEBUG, "IfSet passed"); try { - BOOST_FOREACH(const SubNOEs::value_type & sq, subNOEs.get<bySOOrder>()) { - if (!sq->isErrorHandler) { - sq->execute(); - } + BOOST_FOREACH(const SubNOEs::value_type & sq, normNOEs.get<bySOOrder>()) { + sq->execute(); } } catch (...) { - BOOST_FOREACH(const SubNOEs::value_type & sq, subNOEs.get<bySOOrder>()) { - if (sq->isErrorHandler) { - sq->execute(); - } + BOOST_FOREACH(const SubNOEs::value_type & sq, errorNOEs.get<bySOOrder>()) { + sq->execute(); } if (!localErrorHandling) { throw; |