From 156849cfd725aa2473d4d0638b36fa0dcea05c4b Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 22 Dec 2020 16:19:05 -0600 Subject: [PATCH] small bugfixes --- core/alloc.onyx | 2 +- docs/bugs | 18 ++++++++++++++---- onyx | Bin 286616 -> 286616 bytes src/onyxparser.c | 2 ++ 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/core/alloc.onyx b/core/alloc.onyx index 99d3f86c..a121e6f4 100644 --- a/core/alloc.onyx +++ b/core/alloc.onyx @@ -5,7 +5,7 @@ package core.alloc #include_file "core/alloc/heap" #include_file "core/alloc/ring" -TEMPORARY_ALLOCATOR_SIZE :: 1 << 12; // 16Kb +TEMPORARY_ALLOCATOR_SIZE :: 1 << 12; // 4Kb // The global heap allocator, set up upon program intialization. heap_allocator : Allocator; diff --git a/docs/bugs b/docs/bugs index 90890179..5f892b60 100644 --- a/docs/bugs +++ b/docs/bugs @@ -25,13 +25,23 @@ List of known bugs: which is doesn't match the second one, when the original parameters would have matched correctly. -[ ] `TileData :: [TILE_DATA_WIDTH * TILE_DATA_HEIGHT] bool;` results in a +[ ] `defer` statements are not executed at the end of a loop if the loop is + exited using a `break` statement, or a `continue` statement. The semantics + of this need to change because it is not expected behaviour. Also it would + prevent the usefulness of this pattern: + ``` + while i := 0; i < 10 { + defer i += 1; + ... + } + ``` + Since `continue`ing or `break`ing would skip the deferred statement, causing + an infinite loop. + +[X] `TileData :: [TILE_DATA_WIDTH * TILE_DATA_HEIGHT] bool;` results in a segfault because it is an invalid top level node, but that is not checked before it is tried to be used. -[ ] `defer` statements are not executed at the end of a loop if the loop is - exited using a `break` statement, or a `continue` statement. - [X] `TileData :: #type [TILE_DATA_WIDTH * TILE_DATA_HEIGHT] bool;` produces the following error: ``` diff --git a/onyx b/onyx index 4aec08301c0788ed0ef587d5d841aef10c7bf695..a876c611d7701c1e25f0f4a37d0db373f6a97a52 100755 GIT binary patch delta 33944 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 KXkTf3rvD%1=E(g3 delta 33877 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 MexRd$x$&9)Uxp?IG5`Po diff --git a/src/onyxparser.c b/src/onyxparser.c index bc890b6c..465c8b3b 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -1961,6 +1961,8 @@ static AstNode* parse_top_level_statement(OnyxParser* parser) { expect_token(parser, ':'); AstTyped* node = parse_top_level_expression(parser); + if (parser->hit_unexpected_token || node == NULL) + return NULL; node->flags |= private_kind; -- 2.25.1