diff --git a/src/plugin/bridges/vst3-impls/plugin-factory.cpp b/src/plugin/bridges/vst3-impls/plugin-factory.cpp index a795a5fe..ac0b4ca9 100644 --- a/src/plugin/bridges/vst3-impls/plugin-factory.cpp +++ b/src/plugin/bridges/vst3-impls/plugin-factory.cpp @@ -30,7 +30,7 @@ YaPluginFactoryImpl::createInstance(Steinberg::FIDString cid, void** obj) { // Class IDs may be padded with null bytes constexpr size_t uid_size = sizeof(Steinberg::TUID); - if (!cid || !_iid || strnlen(_iid, uid_size) < uid_size) { + if (!cid || !_iid || !obj || strnlen(_iid, uid_size) < uid_size) { return Steinberg::kInvalidArgument; } @@ -62,6 +62,7 @@ YaPluginFactoryImpl::createInstance(Steinberg::FIDString cid, bridge.logger.log_unknown_interface( "In IPluginFactory::createInstance()", uid); + *obj = nullptr; return Steinberg::kNotImplemented; } diff --git a/src/wine-host/bridges/vst3-impls/host-context-proxy.cpp b/src/wine-host/bridges/vst3-impls/host-context-proxy.cpp index add3ca13..0930c697 100644 --- a/src/wine-host/bridges/vst3-impls/host-context-proxy.cpp +++ b/src/wine-host/bridges/vst3-impls/host-context-proxy.cpp @@ -62,7 +62,7 @@ Vst3HostContextProxyImpl::createInstance(Steinberg::TUID /*cid*/, // Class IDs don't have a meaning here, they just mirrored the interface // from `IPlugFactory::createInstance()` constexpr size_t uid_size = sizeof(Steinberg::TUID); - if (!_iid || strnlen(_iid, uid_size) < uid_size) { + if (!_iid || !obj || strnlen(_iid, uid_size) < uid_size) { return Steinberg::kInvalidArgument; } @@ -98,6 +98,8 @@ Vst3HostContextProxyImpl::createInstance(Steinberg::TUID /*cid*/, "IHostApplication::createInstance() for indirectly " "connected objects has not yet been implemented" << std::endl; + + *obj = nullptr; return Steinberg::kNotImplemented; } } diff --git a/src/wine-host/bridges/vst3.cpp b/src/wine-host/bridges/vst3.cpp index ae60b580..64a77552 100644 --- a/src/wine-host/bridges/vst3.cpp +++ b/src/wine-host/bridges/vst3.cpp @@ -181,6 +181,9 @@ void Vst3Bridge::run() { object_instances[request.instance_id] .host_context_proxy->are_objects_directly_connected = true; + object_instances[request.other_instance_id] + .host_context_proxy->are_objects_directly_connected = + true; } return object_instances[request.instance_id]