diff options
Diffstat (limited to 'src/core/parser/stack/Stack.cpp')
-rw-r--r-- | src/core/parser/stack/Stack.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/core/parser/stack/Stack.cpp b/src/core/parser/stack/Stack.cpp index 696a070..2fe4a8f 100644 --- a/src/core/parser/stack/Stack.cpp +++ b/src/core/parser/stack/Stack.cpp @@ -799,7 +799,8 @@ bool StackImpl::prepareCurrentHandler(bool startImplicitDefaultField, // Try to start a new default field, abort if this did not work if (startImplicitDefaultField) { bool isDefault = true; - if (!info.handler->fieldStart(isDefault, info.fieldIdx)) { + if (!info.handler->fieldStart(isDefault, !info.range, + info.fieldIdx)) { endCurrentHandler(); continue; } @@ -1211,8 +1212,9 @@ void StackImpl::handleFieldEnd(bool endRange) if (info.range && endRange) { if (!info.hadDefaultField) { bool isDefault = true; - bool valid = info.handler->fieldStart(isDefault, true); - info.fieldStart(true, true, valid); + bool valid = + info.handler->fieldStart(isDefault, false, info.fieldIdx); + info.fieldStart(true, false, valid); } endCurrentHandler(); return; @@ -1453,7 +1455,8 @@ void StackImpl::fieldStart(bool isDefault) bool valid = false; if (handlersValid() && !info.hadDefaultField) { try { - valid = info.handler->fieldStart(defaultField, info.fieldIdx); + valid = + info.handler->fieldStart(defaultField, false, info.fieldIdx); } catch (LoggableException ex) { logger().log(ex); |