소스 검색

Merge pull request #1166 from krux02/minor-fix-2

fix compiler crash in ast_end_token
gingerBill 4 년 전
부모
커밋
daccfca11d
1개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  1. 7 2
      src/parser_pos.cpp

+ 7 - 2
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;