diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-04-12 17:34:09 +0200 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2016-04-25 22:24:15 +0200 |
commit | be79585f0e81b27ce3dc6b94f1f502ff86dcef68 (patch) | |
tree | bce664b2d1827e4e7d12f674c51471d586fd3b2c /src/core/parser/stack/Stack.cpp | |
parent | ebc411f2bc9cb7b1742ed5211d36a2b2ac57cdb5 (diff) |
Pass "isImplicit" flag to Handler::fieldStart
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); |