diff --git a/source/backend/plugin/BridgePlugin.cpp b/source/backend/plugin/BridgePlugin.cpp index 6f9f87aa4..7b36fbc6e 100644 --- a/source/backend/plugin/BridgePlugin.cpp +++ b/source/backend/plugin/BridgePlugin.cpp @@ -1414,14 +1414,20 @@ public: fParams = nullptr; } - CARLA_SAFE_ASSERT_INT2(ins+outs <= static_cast(pData->engine->getOptions().maxParameters), ins+outs, pData->engine->getOptions().maxParameters); + if (int32_t count = ins+outs) + { + const int32_t maxParams(static_cast(pData->engine->getOptions().maxParameters)); + + if (count > maxParams) + { + count = maxParams; + carla_safe_assert_int2("count <= pData->engine->getOptions().maxParameters", __FILE__, __LINE__, count, maxParams); + } - const uint32_t count(carla_fixValue(0, pData->engine->getOptions().maxParameters, static_cast(ins+outs))); + const uint32_t ucount(static_cast(count)); - if (count > 0) - { - pData->param.createNew(count, false, true); - fParams = new BridgeParamInfo[count]; + pData->param.createNew(ucount, false, true); + fParams = new BridgeParamInfo[ucount]; } break; }