From 9703c94997fa01216d6f2026bc09166e7cb8febd Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 5 Jul 2021 11:03:59 -0500 Subject: [PATCH] == bugfix and library cleanup --- bin/onyx | Bin 409256 -> 409256 bytes core/io/reader.onyx | 9 ++++++--- include/onyxtypes.h | 2 +- src/onyxwasm.c | 1 + tests/aoc-2020/day1.onyx | 3 ++- tests/aoc-2020/day2.onyx | 3 ++- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/bin/onyx b/bin/onyx index f41b835425d4090e34dcb0f6ecf5d16456176e2e..efef128ab1ec0ceca6109f640c765b04e2ded42f 100755 GIT binary patch delta 13932 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 DNHL@O delta 13950 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 diff --git a/core/io/reader.onyx b/core/io/reader.onyx index 4367566e..bfacd02f 100644 --- a/core/io/reader.onyx +++ b/core/io/reader.onyx @@ -12,11 +12,14 @@ reader_make :: (s: ^Stream) -> Reader { return Reader.{ s }; } -reader_from_string :: (s: str) -> Reader { - stream_ptr := new(StringStream); @Leak +// You need to free the StringStream from the context.allocator when you use this. For example, +// reader, stream := reader_from_string(s); +// defer cfree(stream); +reader_from_string :: (s: str) -> (Reader, ^StringStream) { + stream_ptr := new(StringStream); *stream_ptr = string_stream_make(s); - return Reader.{ stream_ptr }; + return Reader.{ stream_ptr }, stream_ptr; } read_byte :: (use reader: ^Reader) -> u8 { diff --git a/include/onyxtypes.h b/include/onyxtypes.h index 6113fead..03574c74 100644 --- a/include/onyxtypes.h +++ b/include/onyxtypes.h @@ -50,7 +50,7 @@ enum BasicFlag { Basic_Flag_Numeric = Basic_Flag_Integer | Basic_Flag_Float, Basic_Flag_Ordered = Basic_Flag_Integer | Basic_Flag_Float | Basic_Flag_Pointer, - Basic_Flag_Equality = Basic_Flag_Ordered | Basic_Flag_Type_Index, + Basic_Flag_Equality = Basic_Flag_Ordered | Basic_Flag_Type_Index | Basic_Flag_Boolean, Basic_Flag_Constant_Type = Basic_Flag_Boolean | Basic_Flag_Numeric | Basic_Flag_Pointer, Basic_Flag_Numeric_Ordered = Basic_Flag_Numeric | Basic_Flag_Ordered, }; diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 60d5a3c8..c0777af9 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -2650,6 +2650,7 @@ EMIT_FUNC(cast, AstUnaryOp* cast) { if (to->kind == Type_Kind_Slice && from->kind == Type_Kind_VarArgs) { // Nothing needs to be done because they are identical + *pcode = code; return; } diff --git a/tests/aoc-2020/day1.onyx b/tests/aoc-2020/day1.onyx index eecdcddc..b40a5bff 100644 --- a/tests/aoc-2020/day1.onyx +++ b/tests/aoc-2020/day1.onyx @@ -4,7 +4,8 @@ use package core main :: (args: [] cstr) { contents := #file_contents "./tests/aoc-2020/input/day1.txt"; - reader := io.reader_from_string(contents); + reader, stream := io.reader_from_string(contents); + defer cfree(stream); nums := array.make(u32, 128); defer array.free(^nums); diff --git a/tests/aoc-2020/day2.onyx b/tests/aoc-2020/day2.onyx index fca7b94f..86fd7a19 100644 --- a/tests/aoc-2020/day2.onyx +++ b/tests/aoc-2020/day2.onyx @@ -6,7 +6,8 @@ use package core main :: (args: [] cstr) { contents := #file_contents "./tests/aoc-2020/input/day2.txt"; - reader := io.reader_from_string(contents); + reader, stream := io.reader_from_string(contents); + defer cfree(stream); valid := 0; -- 2.25.1