Browse Source

Fix for vst2 plugins that crash on init

Signed-off-by: falkTX <falktx@falktx.com>
tags/v2.2.0-RC1
falkTX 4 years ago
parent
commit
cebc307542
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 9 additions and 4 deletions
  1. +8
    -3
      source/backend/plugin/CarlaPluginVST2.cpp
  2. +1
    -1
      source/utils/CarlaProcessUtils.cpp

+ 8
- 3
source/backend/plugin/CarlaPluginVST2.cpp View File

@@ -24,6 +24,7 @@

#include "CarlaBackendUtils.hpp"
#include "CarlaMathUtils.hpp"
#include "CarlaProcessUtils.hpp"
#include "CarlaScopeUtils.hpp"
#include "CarlaVstUtils.hpp"

@@ -2418,9 +2419,13 @@ public:
sCurrentUniqueId = static_cast<intptr_t>(uniqueId);
sLastCarlaPluginVST2 = this;

try {
fEffect = vstFn(carla_vst_audioMasterCallback);
} CARLA_SAFE_EXCEPTION_RETURN("Vst init", false);
{
const ScopedAbortCatcher sac;

try {
fEffect = vstFn(carla_vst_audioMasterCallback);
} CARLA_SAFE_EXCEPTION_RETURN("Vst init", false);
}

sLastCarlaPluginVST2 = nullptr;
sCurrentUniqueId = 0;


+ 1
- 1
source/utils/CarlaProcessUtils.cpp View File

@@ -33,7 +33,7 @@ ScopedAbortCatcher::ScopedAbortCatcher()
ScopedAbortCatcher::~ScopedAbortCatcher()
{
#ifndef CARLA_OS_WIN
if (! s_triggered)
if (s_oldsig != nullptr && ! s_triggered)
std::signal(SIGABRT, s_oldsig);
#endif
}


Loading…
Cancel
Save