diff --git a/include/wlr/util/addon.h b/include/wlr/util/addon.h index 382252ae..c64200cf 100644 --- a/include/wlr/util/addon.h +++ b/include/wlr/util/addon.h @@ -20,6 +20,7 @@ struct wlr_addon; struct wlr_addon_interface { const char *name; + // Has to call wlr_addon_finish() void (*destroy)(struct wlr_addon *addon); }; @@ -34,10 +35,10 @@ void wlr_addon_set_init(struct wlr_addon_set *set); void wlr_addon_set_finish(struct wlr_addon_set *set); void wlr_addon_init(struct wlr_addon *addon, struct wlr_addon_set *set, - const void *owner, const struct wlr_addon_interface *impl); + const void *owner, const struct wlr_addon_interface *impl); void wlr_addon_finish(struct wlr_addon *addon); struct wlr_addon *wlr_addon_find(struct wlr_addon_set *set, const void *owner, - const struct wlr_addon_interface *impl); + const struct wlr_addon_interface *impl); #endif diff --git a/util/addon.c b/util/addon.c index c9b373a7..10aed744 100644 --- a/util/addon.c +++ b/util/addon.c @@ -12,7 +12,6 @@ void wlr_addon_set_init(struct wlr_addon_set *set) { void wlr_addon_set_finish(struct wlr_addon_set *set) { struct wlr_addon *addon, *tmp; wl_list_for_each_safe(addon, tmp, &set->addons, link) { - wlr_addon_finish(addon); addon->impl->destroy(addon); } } @@ -34,7 +33,6 @@ void wlr_addon_init(struct wlr_addon *addon, struct wlr_addon_set *set, void wlr_addon_finish(struct wlr_addon *addon) { wl_list_remove(&addon->link); - wl_list_init(&addon->link); } struct wlr_addon *wlr_addon_find(struct wlr_addon_set *set, const void *owner,