diff --git a/arraylist.hpp b/arraylist.hpp index 4774a82..e41ad5b 100644 --- a/arraylist.hpp +++ b/arraylist.hpp @@ -7,11 +7,11 @@ template struct Array_List { type* data; u32 length; - u32 next_index; + u32 count; void alloc(u32 initial_capacity = 16) { data = (type*)malloc(initial_capacity * sizeof(type)); - next_index = 0; + count = 0; length = initial_capacity; } @@ -21,16 +21,16 @@ struct Array_List { } void clear() { - next_index = 0; + count = 0; } Array_List clone() { Array_List ret; ret.length = length; - ret.next_index = next_index; + ret.count = count; ret.data = (type*)malloc(length * sizeof(type)); - for (u32 i = 0; i < next_index; ++i) { + for (u32 i = 0; i < count; ++i) { ret.data[i] = data[i]; } return ret; @@ -41,24 +41,24 @@ struct Array_List { } type* end() { - return data+(next_index); + return data+(count); } void remove_index(u32 index) { - data[index] = data[--next_index]; + data[index] = data[--count]; } void append(type element) { - if (next_index == length) { + if (count == length) { length *= 2; data = (type*)realloc(data, length * sizeof(type)); } - data[next_index] = element; - next_index++; + data[count] = element; + count++; } - void reserve(u32 count) { - if (next_index+count >= (u32)length) { + void reserve(u32 amount) { + if (count+amount >= (u32)length) { length *= 2; data = (type*)realloc(data, length * sizeof(type)); } @@ -112,9 +112,9 @@ struct Array_List { void sort(s32 left=-1, s32 right=-1) { if (left == -1) { - if (next_index == 0) + if (count == 0) return; - sort(0, next_index - 1); + sort(0, count - 1); return; } else if (left == right) { return; @@ -130,7 +130,7 @@ struct Array_List { u32 sorted_find(type elem, s32 left=-1, s32 right=-1) { if (left == -1) { - return sorted_find(elem, 0, next_index - 1); + return sorted_find(elem, 0, count - 1); } else if (left == right) { if ((size_t)data[left] == (size_t)elem) return left; diff --git a/error.hpp b/error.hpp index 0318ff0..7409e6b 100644 --- a/error.hpp +++ b/error.hpp @@ -21,14 +21,14 @@ auto delete_error() -> void { auto create_error(const char* c_func_name, const char* c_file_name, u32 c_file_line, String type, const char* format, ...) -> void { - error = new Error; - error->type = type; + error = (Error*) malloc(sizeof(Error)); va_list args; va_start(args, format); error->message.length = print_va_args_to_string(&(error->message.data), format, &args); va_end(args); + error->type = type; print("\n%{color<}%{->Str} error:%{>color} %{->Str}\n", console_red, &(error->type), &(error->message)); diff --git a/hooks.hpp b/hooks.hpp index 08d8b19..4f640c8 100644 --- a/hooks.hpp +++ b/hooks.hpp @@ -59,19 +59,19 @@ struct Hook : Array_List> { } void operator<<(Lambda f) { // FIXME(Felix): Why can I not call Array_List::append here??? Hallo? - if (next_index == length) { + if (count == length) { length *= 2; data = (Lambda*)realloc(data, length * sizeof(Lambda)); } - data[next_index] = f; - next_index++; + data[count] = f; + count++; } void operator()() { - while(next_index --> 0) { + while(count --> 0) { fflush(stdout); - data[next_index](); + data[count](); } - next_index = 0; + count = 0; } }; diff --git a/print.hpp b/print.hpp index 74939a1..1a26e71 100644 --- a/print.hpp +++ b/print.hpp @@ -415,11 +415,11 @@ int print_color_start(FILE* f, char* str) { } int print_color_end(FILE* f) { - --color_stack.next_index; - if (color_stack.next_index == 0) { + --color_stack.count; + if (color_stack.count == 0) { return print_to_file(f, "%s", console_normal); } else { - return print_to_file(f, "%s", color_stack[color_stack.next_index-1]); + return print_to_file(f, "%s", color_stack[color_stack.count-1]); } } diff --git a/test.cpp b/test.cpp index 2d1ca19..2585232 100644 --- a/test.cpp +++ b/test.cpp @@ -49,24 +49,14 @@ s32 main(s32 argc, char* argv[]) { // test_printer(); init_printer(); - // create_generic_error("nothing to lex was found:\n" - // " in %{color<}%{->char}%{>color}\n" - // " at %{color<}%{->char}%{>color}\n" - // "bottom text\n", - // console_green, - // "some file name", - // console_cyan, - // "yesssssss"); + create_generic_error("nothing to lex was found:\n" + " in %{color<}%{->char}%{>color}\n" + " at %{color<}%{->char}%{>color}\n" + "bottom text\n", + console_green, + "some file name", + console_cyan, + "yesssssss"); - create_error(__FUNCTION__, __FILE__, __LINE__, - make_heap_string("generic"), - "nothing to lex was found:\n" - " in %{color<}%{->char}%{>color}\n" - " at %{color<}%{->char}%{>color}\n" - "bottom text\n", - console_green, - "some file name", - console_cyan, - "yesssssss"); return 0; }