diff --git a/src/main.c b/src/main.c index 1cce93f..432f16e 100644 --- a/src/main.c +++ b/src/main.c @@ -60,7 +60,7 @@ int main(int argc, char *argv[]) { Arena *global_arena = arena_init(NULL, 0); wn_window *window = wn_window_init(global_arena); - if (wn_window_init(global_arena) == NULL) { + if (window == NULL) { SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize wn_window"); return EXIT_FAILURE; } diff --git a/src/window.c b/src/window.c index b968862..7a84754 100644 --- a/src/window.c +++ b/src/window.c @@ -7,6 +7,8 @@ wn_window *wn_window_init(Arena *arena) { wn_window *window = arena_alloc(arena, sizeof(wn_window)); + *window = (wn_window){0}; + window->window = SDL_CreateWindow("Hello SDL3", 320, 240, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE); if (!SDL_Init(SDL_INIT_VIDEO)) { @@ -50,11 +52,9 @@ wn_window *wn_window_init(Arena *arena) { SDL_GetRelativeMouseState(NULL, NULL); // add deinit function to arena deinit stack - ArenaDeinitTask deinitTask = (ArenaDeinitTask){.func_param = (void *)window, - .func_ptr = *wn_window_deinit, - .next = NULL}; - - arena_deinit_task_push(arena, deinitTask); + arena_deinit_task_push(arena, (ArenaDeinitTask){.func_param = (void *)window, + .func_ptr = *wn_window_deinit, + .next = NULL}); return window; }