mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +02:00
Work around a memory corruption issue on unload
I'm really not sure what is happening here, and it might just be a winelib thing.
This commit is contained in:
@@ -67,7 +67,10 @@ Vst2Bridge& get_bridge_instance(const AEffect* plugin) {
|
||||
|
||||
Vst2Bridge::Vst2Bridge(std::string plugin_dll_path,
|
||||
std::string socket_endpoint_path)
|
||||
: plugin_handle(LoadLibrary(plugin_dll_path.c_str()), FreeLibrary),
|
||||
// See `plugin_handle`s docstring for information on why we're leaking
|
||||
// memory here
|
||||
// : plugin_handle(LoadLibrary(plugin_dll_path.c_str()), FreeLibrary),
|
||||
: plugin_handle(LoadLibrary(plugin_dll_path.c_str())),
|
||||
io_context(),
|
||||
socket_endpoint(socket_endpoint_path),
|
||||
host_vst_dispatch(io_context),
|
||||
@@ -85,9 +88,8 @@ Vst2Bridge::Vst2Bridge(std::string plugin_dll_path,
|
||||
// there are some older deprecated names that legacy plugins may still use
|
||||
VstEntryPoint vst_entry_point = nullptr;
|
||||
for (auto name : {"VSTPluginMain", "main_plugin", "main"}) {
|
||||
vst_entry_point =
|
||||
reinterpret_cast<VstEntryPoint>(reinterpret_cast<size_t>(
|
||||
GetProcAddress(plugin_handle.get(), name)));
|
||||
vst_entry_point = reinterpret_cast<VstEntryPoint>(
|
||||
reinterpret_cast<size_t>(GetProcAddress(plugin_handle, name)));
|
||||
|
||||
if (vst_entry_point != nullptr) {
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user