diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-03-03 20:38:32 +0100 |
---|---|---|
committer | Andreas Stöckel <andreas@somweyr.de> | 2015-03-03 20:38:32 +0100 |
commit | e9f726d2f8108104d86e967dd27bba1fbe493b19 (patch) | |
tree | e0bf6412eecfe43b883b253748664e60c76f2cee /src/core/parser/stack/DocumentHandler.cpp | |
parent | ec758436a01903ded6ec5951fa1fc5d2fe062239 (diff) |
added more complex tests and prevented endless loops in DocumentChildHandler::startAnnotation
Diffstat (limited to 'src/core/parser/stack/DocumentHandler.cpp')
-rw-r--r-- | src/core/parser/stack/DocumentHandler.cpp | 10 |
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; } } |