From 442c25bf82ef48337657db51ac722788a6c7bd53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arne=20D=C3=B6ring?= Date: Tue, 14 Sep 2021 11:44:10 +0200 Subject: [PATCH] fix crash for ast_end_token --- src/parser_pos.cpp | 9 +++++++-- 1 file 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;