balls are moving on my screen

This commit is contained in:
2025-08-20 00:08:26 -05:00
parent 7bf24beb45
commit e7a623b5a5
5 changed files with 63 additions and 31 deletions

View File

@@ -10,7 +10,7 @@ array<char*> _split_str_inner(const char* s, char delim, bool just_check_ws);
template<class T> void append(array<T>& a, T el) {
if (a.len == a.cap) {
resize(a, a.cap * 2);
resize(a, max(8, a.cap * 2));
}
a[a.len] = el;
a.len++;
@@ -23,20 +23,18 @@ template<class T> T pop(array<T>& a) {
}
template<class T> void resize(array<T>& a, size_t new_cap) {
T* new_data = (T*)malloc(new_cap);
T* new_data = (T*)malloc(sizeof(T) * new_cap);
if (a.len > 0) {
memcpy(new_data, a.data, min(a.len, new_cap));
}
free(a.data);
a.data = new_data;
a.len = min(a.len, new_cap);
a.cap = new_cap;
}
template<class T> void free(array<T>& a) {
if (a.len > 0)
free(a.data);
template<class T> void clear(array<T>& a) {
a.len = 0;
a.cap = 0;
}
bool read_file(array<char>* out, const char* filepath) {
@@ -76,7 +74,7 @@ array<char*> _split_str_inner(const char* s, char delim, bool just_check_ws) {
memcpy(word, cur_word.data, cur_word.len);
word[cur_word.len] = '\0';
append(res, word);
free(cur_word);
clear(cur_word);
if (c == '\0') {
break;
}
@@ -89,6 +87,5 @@ array<char*> _split_str_inner(const char* s, char delim, bool just_check_ws) {
break;
}
}
free(cur_word);
return res;
}