--- a/ui/common/menu.c Sat Oct 18 09:33:39 2025 +0200 +++ b/ui/common/menu.c Sat Oct 18 09:43:05 2025 +0200 @@ -255,6 +255,7 @@ builder->menus_begin = NULL; builder->menus_end = NULL; builder->current = cxLinkedListCreate(cxDefaultAllocator, NULL, CX_STORE_POINTERS); + builder->ref = 1; current_builder = builder; *out_builder = builder; @@ -324,3 +325,13 @@ cxListFree(builder->current); free(builder); } + +void ui_menubuilder_ref(UiMenuBuilder *builder) { + builder->ref++; +} + +void ui_menubuilder_unref(UiMenuBuilder *builder) { + if(--builder->ref <= 0) { + ui_menubuilder_free(builder); + } +}