ui/common/menu.c

changeset 860
7f2287ae2b78
parent 836
5a8485ff7f54
child 890
8d30cbd1c465
--- 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);
+    }
+}

mercurial