aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArne Döring <arne.doering@gmx.net>2021-09-14 11:44:10 +0200
committerArne Döring <arne.doering@gmx.net>2021-09-14 11:44:10 +0200
commit442c25bf82ef48337657db51ac722788a6c7bd53 (patch)
tree485073ca40e46650ddfdaf38f162933250f01b8b /src
parentc2707618d926355ec724b7cb6ac9345cfed10505 (diff)
fix crash for ast_end_token
Diffstat (limited to 'src')
-rw-r--r--src/parser_pos.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/parser_pos.cpp b/src/parser_pos.cpp
index 8d164caf9..99b3686ba 100644
--- a/src/parser_pos.cpp
+++ b/src/parser_pos.cpp
@@ -271,8 +271,13 @@ Token ast_end_token(Ast *node) {
if (node->Attribute.close.kind != Token_Invalid) {
return node->Attribute.close;
}
- return ast_end_token(node->Attribute.elems[node->Attribute.elems.count-1]);
-
+ if (node->Attribute.elems.count > 0) {
+ return ast_end_token(node->Attribute.elems[node->Attribute.elems.count-1]);
+ }
+ if (node->Attribute.open.kind != Token_Invalid) {
+ return node->Attribute.open;
+ }
+ return node->Attribute.token;
case Ast_Field:
if (node->Field.tag.kind != Token_Invalid) {
return node->Field.tag;