Merge PR #603: Fix a crash when the same plugin file is loaded twice
This commit is contained in:
commit
ff1a841352
@ -1426,7 +1426,11 @@ void ThingManagerImplementation::loadPlugins()
|
||||
|
||||
if (m_integrationPlugins.contains(plugin->pluginId())) {
|
||||
qCWarning(dcThingManager()) << "A plugin with this ID is already loaded. Not loading" << entry << plugin->pluginId();
|
||||
delete plugin;
|
||||
// Depending on the plugin type, duplicate loading of the same plugin file may return the same instance. In which
|
||||
// case we do *not* want to delete it, but we want to delete the dupe if a new instance has been created with the same ID.
|
||||
if (m_integrationPlugins.value(plugin->pluginId()) != plugin) {
|
||||
delete plugin;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
loadPlugin(plugin);
|
||||
|
||||
@ -220,7 +220,7 @@ QVariantList NymeaTestBase::checkNotifications(const QSignalSpy &spy, const QStr
|
||||
QVariant NymeaTestBase::getAndWait(const QNetworkRequest &request, const int &expectedStatus)
|
||||
{
|
||||
QNetworkAccessManager nam;
|
||||
connect(&nam, &QNetworkAccessManager::sslErrors, [&nam](QNetworkReply *reply, const QList<QSslError> &) {
|
||||
connect(&nam, &QNetworkAccessManager::sslErrors, [](QNetworkReply *reply, const QList<QSslError> &) {
|
||||
reply->ignoreSslErrors();
|
||||
});
|
||||
QSignalSpy clientSpy(&nam, SIGNAL(finished(QNetworkReply*)));
|
||||
@ -258,7 +258,7 @@ QVariant NymeaTestBase::getAndWait(const QNetworkRequest &request, const int &ex
|
||||
QVariant NymeaTestBase::deleteAndWait(const QNetworkRequest &request, const int &expectedStatus)
|
||||
{
|
||||
QNetworkAccessManager nam;
|
||||
connect(&nam, &QNetworkAccessManager::sslErrors, [this, &nam](QNetworkReply *reply, const QList<QSslError> &) {
|
||||
connect(&nam, &QNetworkAccessManager::sslErrors, [](QNetworkReply *reply, const QList<QSslError> &) {
|
||||
reply->ignoreSslErrors();
|
||||
});
|
||||
QSignalSpy clientSpy(&nam, SIGNAL(finished(QNetworkReply*)));
|
||||
@ -293,7 +293,7 @@ QVariant NymeaTestBase::deleteAndWait(const QNetworkRequest &request, const int
|
||||
QVariant NymeaTestBase::postAndWait(const QNetworkRequest &request, const QVariant ¶ms, const int &expectedStatus)
|
||||
{
|
||||
QNetworkAccessManager nam;
|
||||
connect(&nam, &QNetworkAccessManager::sslErrors, [this, &nam](QNetworkReply *reply, const QList<QSslError> &) {
|
||||
connect(&nam, &QNetworkAccessManager::sslErrors, [](QNetworkReply *reply, const QList<QSslError> &) {
|
||||
reply->ignoreSslErrors();
|
||||
});
|
||||
QSignalSpy clientSpy(&nam, SIGNAL(finished(QNetworkReply*)));
|
||||
@ -333,7 +333,7 @@ QVariant NymeaTestBase::postAndWait(const QNetworkRequest &request, const QVaria
|
||||
QVariant NymeaTestBase::putAndWait(const QNetworkRequest &request, const QVariant ¶ms, const int &expectedStatus)
|
||||
{
|
||||
QNetworkAccessManager nam;
|
||||
connect(&nam, &QNetworkAccessManager::sslErrors, [this, &nam](QNetworkReply *reply, const QList<QSslError> &) {
|
||||
connect(&nam, &QNetworkAccessManager::sslErrors, [](QNetworkReply *reply, const QList<QSslError> &) {
|
||||
reply->ignoreSslErrors();
|
||||
});
|
||||
QSignalSpy clientSpy(&nam, SIGNAL(finished(QNetworkReply*)));
|
||||
|
||||
Reference in New Issue
Block a user