Merge pull request #183 from timoreo22/fix-versions-segfault
Fixed segfault in mod download
This commit is contained in:
		@@ -113,13 +113,12 @@ void FlameModPage::onSelectionChanged(QModelIndex first, QModelIndex second)
 | 
			
		||||
    {
 | 
			
		||||
        qDebug() << "Loading flame mod versions";
 | 
			
		||||
        auto netJob = new NetJob(QString("Flame::ModVersions(%1)").arg(current.name), APPLICATION->network());
 | 
			
		||||
        std::shared_ptr<QByteArray> response = std::make_shared<QByteArray>();
 | 
			
		||||
        auto response = new QByteArray();
 | 
			
		||||
        int addonId = current.addonId;
 | 
			
		||||
        netJob->addNetAction(Net::Download::makeByteArray(QString("https://addons-ecs.forgesvc.net/api/v2/addon/%1/files").arg(addonId), response.get()));
 | 
			
		||||
        netJob->addNetAction(Net::Download::makeByteArray(QString("https://addons-ecs.forgesvc.net/api/v2/addon/%1/files").arg(addonId), response));
 | 
			
		||||
 | 
			
		||||
        QObject::connect(netJob, &NetJob::succeeded, this, [this, response, netJob]
 | 
			
		||||
        QObject::connect(netJob, &NetJob::succeeded, this, [this, response]
 | 
			
		||||
        {
 | 
			
		||||
            netJob->deleteLater();
 | 
			
		||||
            QJsonParseError parse_error;
 | 
			
		||||
            QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error);
 | 
			
		||||
            if(parse_error.error != QJsonParseError::NoError) {
 | 
			
		||||
@@ -150,9 +149,13 @@ void FlameModPage::onSelectionChanged(QModelIndex first, QModelIndex second)
 | 
			
		||||
            if(ui->versionSelectionBox->count() == 0){
 | 
			
		||||
                ui->versionSelectionBox->addItem(tr("No Valid Version found!"), QVariant(-1));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            suggestCurrent();
 | 
			
		||||
        });
 | 
			
		||||
        QObject::connect(netJob, &NetJob::finished, this, [response, netJob]
 | 
			
		||||
        {
 | 
			
		||||
            netJob->deleteLater();
 | 
			
		||||
            delete response;
 | 
			
		||||
        });
 | 
			
		||||
        netJob->start();
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
 
 | 
			
		||||
@@ -98,13 +98,12 @@ void ModrinthPage::onSelectionChanged(QModelIndex first, QModelIndex second)
 | 
			
		||||
    {
 | 
			
		||||
        qDebug() << "Loading Modrinth mod versions";
 | 
			
		||||
        auto netJob = new NetJob(QString("Modrinth::ModVersions(%1)").arg(current.name), APPLICATION->network());
 | 
			
		||||
        std::shared_ptr<QByteArray> response = std::make_shared<QByteArray>();
 | 
			
		||||
        auto response = new QByteArray();
 | 
			
		||||
        QString addonId = current.addonId;
 | 
			
		||||
        netJob->addNetAction(Net::Download::makeByteArray(QString("https://api.modrinth.com/v2/project/%1/version").arg(addonId), response.get()));
 | 
			
		||||
        netJob->addNetAction(Net::Download::makeByteArray(QString("https://api.modrinth.com/v2/project/%1/version").arg(addonId), response));
 | 
			
		||||
 | 
			
		||||
        QObject::connect(netJob, &NetJob::succeeded, this, [this, response, netJob]
 | 
			
		||||
        QObject::connect(netJob, &NetJob::succeeded, this, [this, response]
 | 
			
		||||
        {
 | 
			
		||||
            netJob->deleteLater();
 | 
			
		||||
            QJsonParseError parse_error;
 | 
			
		||||
            QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error);
 | 
			
		||||
            if(parse_error.error != QJsonParseError::NoError) {
 | 
			
		||||
@@ -138,6 +137,10 @@ void ModrinthPage::onSelectionChanged(QModelIndex first, QModelIndex second)
 | 
			
		||||
 | 
			
		||||
            suggestCurrent();
 | 
			
		||||
        });
 | 
			
		||||
        QObject::connect(netJob, &NetJob::finished, this, [response, netJob]{
 | 
			
		||||
            netJob->deleteLater();
 | 
			
		||||
            delete response;
 | 
			
		||||
        });
 | 
			
		||||
        netJob->start();
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user