From: Brendan Hansen Date: Mon, 5 Jul 2021 16:03:59 +0000 (-0500) Subject: == bugfix and library cleanup X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=9703c94997fa01216d6f2026bc09166e7cb8febd;p=onyx.git == bugfix and library cleanup --- diff --git a/bin/onyx b/bin/onyx index f41b8354..efef128a 100755 Binary files a/bin/onyx and b/bin/onyx differ 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;