summaryrefslogtreecommitdiff
path: root/src/core/parser/ParserStack.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/parser/ParserStack.cpp')
-rw-r--r--src/core/parser/ParserStack.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/parser/ParserStack.cpp b/src/core/parser/ParserStack.cpp
index 01fce3f..7bc7af3 100644
--- a/src/core/parser/ParserStack.cpp
+++ b/src/core/parser/ParserStack.cpp
@@ -100,7 +100,8 @@ void ParserStack::start(std::string name, char **attrs)
const HandlerDescriptor *descr = nullptr;
auto range = handlers.equal_range(name);
for (auto it = range.first; it != range.second; it++) {
- if (it->second.parentStates.count(curState)) {
+ const std::set<State> &parentStates = it->second.parentStates;
+ if (parentStates.count(curState) || parentStates.count(STATE_ALL)) {
descr = &(it->second);
break;
}