summaryrefslogtreecommitdiff
path: root/project2/if.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'project2/if.cpp')
-rw-r--r--project2/if.cpp14
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;