Closed mfisher31 closed 4 years ago
Ping! @drobilla
Noted, but I'm curious how this came about. I was under the impression that I could probably just remove this whole thing and nobody would notice.
I was experimenting with making a "generic" UI which could be loaded for any plugin. The use case would be a new LV2 host that wants to show plugin UIs immediately without fleshing out the host-side implementation right away. (By implementation, I mean having smart GUI logic that builds out the UI interface according the metadata in the turtle)
Anyhow, I was messing with dynmanifest to generate turtle entries so the generic UI can be related to all installed plugins. Long story short, my dynmanifest doesn't create new plugins. Instead it adds relational data like...
<http://example.com/plugin> ui:ui <http://example.com/generic/ui> .
... so the host could load this UI for any installed plugin. Came up with this for a way destroy it so ref count stays consistent.
I see. Weird :)
I took a superficially slightly different approach because I didn't want to add files or build system boilerplate for a mostly-dead feature, but merged a more or less equivalent fix as 5ae973b. Thanks.
This adds an internal function to free LilvDynManifest in a consistent way. world.c was just calling
free(...)
on it after loading the library & getting no plugins from thelv2_dyn_manifest_get_subjects
handler.