summaryrefslogtreecommitdiff
path: root/src/core/parser/stack
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-03-03 20:38:32 +0100
committerAndreas Stöckel <andreas@somweyr.de>2015-03-03 20:38:32 +0100
commite9f726d2f8108104d86e967dd27bba1fbe493b19 (patch)
treee0bf6412eecfe43b883b253748664e60c76f2cee /src/core/parser/stack
parentec758436a01903ded6ec5951fa1fc5d2fe062239 (diff)
added more complex tests and prevented endless loops in DocumentChildHandler::startAnnotation
Diffstat (limited to 'src/core/parser/stack')
-rw-r--r--src/core/parser/stack/DocumentHandler.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/parser/stack/DocumentHandler.cpp b/src/core/parser/stack/DocumentHandler.cpp
index 486ce81..c239583 100644
--- a/src/core/parser/stack/DocumentHandler.cpp
+++ b/src/core/parser/stack/DocumentHandler.cpp
@@ -302,6 +302,16 @@ bool DocumentChildHandler::startAnnotation(Variant::mapType &args)
// pop the implicit element.
scope().pop(logger());
continue;
+ } else {
+ logger().error(
+ "Cannot start or end annotation within the primitive field \"" +
+ parent->getDescriptor()
+ ->getFieldDescriptors()[fieldIdx]
+ ->getNameOrDefaultName() +
+ "\" of descriptor \"" + parent->getDescriptor()->getName() +
+ "\".",
+ location());
+ return false;
}
}