aboutsummaryrefslogtreecommitdiff
path: root/launcher/net
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/net')
-rw-r--r--launcher/net/ApiDownload.cpp2
-rw-r--r--launcher/net/ApiDownload.h2
-rw-r--r--launcher/net/ApiUpload.cpp2
-rw-r--r--launcher/net/ApiUpload.h2
-rw-r--r--launcher/net/ByteArraySink.h9
-rw-r--r--launcher/net/Download.cpp3
-rw-r--r--launcher/net/Download.h2
-rw-r--r--launcher/net/Upload.cpp3
-rw-r--r--launcher/net/Upload.h2
9 files changed, 14 insertions, 13 deletions
diff --git a/launcher/net/ApiDownload.cpp b/launcher/net/ApiDownload.cpp
index df476ce8..aaa8ff65 100644
--- a/launcher/net/ApiDownload.cpp
+++ b/launcher/net/ApiDownload.cpp
@@ -37,7 +37,7 @@ auto ApiDownload::makeCached(QUrl url, MetaEntryPtr entry, Options options) -> D
return dl;
}
-auto ApiDownload::makeByteArray(QUrl url, QByteArray* output, Options options) -> Download::Ptr
+auto ApiDownload::makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, Options options) -> Download::Ptr
{
auto dl = makeShared<ApiDownload>();
dl->m_url = url;
diff --git a/launcher/net/ApiDownload.h b/launcher/net/ApiDownload.h
index 4d0a3292..638c94e1 100644
--- a/launcher/net/ApiDownload.h
+++ b/launcher/net/ApiDownload.h
@@ -29,7 +29,7 @@ class ApiDownload : public Download {
virtual ~ApiDownload() = default;
static auto makeCached(QUrl url, MetaEntryPtr entry, Options options = Option::NoOptions) -> Download::Ptr;
- static auto makeByteArray(QUrl url, QByteArray* output, Options options = Option::NoOptions) -> Download::Ptr;
+ static auto makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, Options options = Option::NoOptions) -> Download::Ptr;
static auto makeFile(QUrl url, QString path, Options options = Option::NoOptions) -> Download::Ptr;
void init() override;
diff --git a/launcher/net/ApiUpload.cpp b/launcher/net/ApiUpload.cpp
index 497573b2..96ebc49c 100644
--- a/launcher/net/ApiUpload.cpp
+++ b/launcher/net/ApiUpload.cpp
@@ -25,7 +25,7 @@
namespace Net {
-Upload::Ptr ApiUpload::makeByteArray(QUrl url, QByteArray* output, QByteArray m_post_data)
+Upload::Ptr ApiUpload::makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, QByteArray m_post_data)
{
auto up = makeShared<ApiUpload>();
up->m_url = std::move(url);
diff --git a/launcher/net/ApiUpload.h b/launcher/net/ApiUpload.h
index 3aeac99d..b12842b0 100644
--- a/launcher/net/ApiUpload.h
+++ b/launcher/net/ApiUpload.h
@@ -28,7 +28,7 @@ class ApiUpload : public Upload {
public:
virtual ~ApiUpload() = default;
- static Upload::Ptr makeByteArray(QUrl url, QByteArray* output, QByteArray m_post_data);
+ static Upload::Ptr makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, QByteArray m_post_data);
void init() override;
};
diff --git a/launcher/net/ByteArraySink.h b/launcher/net/ByteArraySink.h
index 728193b3..7b8f0f8a 100644
--- a/launcher/net/ByteArraySink.h
+++ b/launcher/net/ByteArraySink.h
@@ -1,7 +1,8 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
- * PolyMC - Minecraft Launcher
+ * Prism Launcher - Minecraft Launcher
* Copyright (c) 2022 flowln <flowlnlnln@gmail.com>
+ * Copyright (c) 2023 Trial97 <alexandru.tripon97@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -41,12 +42,10 @@ namespace Net {
/*
* Sink object for downloads that uses an external QByteArray it doesn't own as a target.
- * FIXME: It is possible that the QByteArray is freed while we're doing some operation on it,
- * causing a segmentation fault.
*/
class ByteArraySink : public Sink {
public:
- ByteArraySink(QByteArray* output) : m_output(output){};
+ ByteArraySink(std::shared_ptr<QByteArray> output) : m_output(output){};
virtual ~ByteArraySink() = default;
@@ -93,6 +92,6 @@ class ByteArraySink : public Sink {
auto hasLocalData() -> bool override { return false; }
private:
- QByteArray* m_output;
+ std::shared_ptr<QByteArray> m_output;
};
} // namespace Net
diff --git a/launcher/net/Download.cpp b/launcher/net/Download.cpp
index 47966da5..c8645213 100644
--- a/launcher/net/Download.cpp
+++ b/launcher/net/Download.cpp
@@ -41,6 +41,7 @@
#include <QDateTime>
#include <QFileInfo>
+#include <memory>
#include "ByteArraySink.h"
#include "ChecksumValidator.h"
@@ -74,7 +75,7 @@ auto Download::makeCached(QUrl url, MetaEntryPtr entry, Options options) -> Down
}
#endif
-auto Download::makeByteArray(QUrl url, QByteArray* output, Options options) -> Download::Ptr
+auto Download::makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, Options options) -> Download::Ptr
{
auto dl = makeShared<Download>();
dl->m_url = url;
diff --git a/launcher/net/Download.h b/launcher/net/Download.h
index fee04feb..19f675ad 100644
--- a/launcher/net/Download.h
+++ b/launcher/net/Download.h
@@ -60,7 +60,7 @@ class Download : public NetAction {
~Download() override = default;
static auto makeCached(QUrl url, MetaEntryPtr entry, Options options = Option::NoOptions) -> Download::Ptr;
- static auto makeByteArray(QUrl url, QByteArray* output, Options options = Option::NoOptions) -> Download::Ptr;
+ static auto makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, Options options = Option::NoOptions) -> Download::Ptr;
static auto makeFile(QUrl url, QString path, Options options = Option::NoOptions) -> Download::Ptr;
void init() override {};
diff --git a/launcher/net/Upload.cpp b/launcher/net/Upload.cpp
index 27759f53..8881b16a 100644
--- a/launcher/net/Upload.cpp
+++ b/launcher/net/Upload.cpp
@@ -38,6 +38,7 @@
#include "Upload.h"
+#include <memory>
#include <utility>
#include "BuildConfig.h"
#include "ByteArraySink.h"
@@ -256,7 +257,7 @@ void Upload::executeTask()
connect(rep, &QNetworkReply::readyRead, this, &Upload::downloadReadyRead);
}
-Upload::Ptr Upload::makeByteArray(QUrl url, QByteArray* output, QByteArray m_post_data)
+Upload::Ptr Upload::makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, QByteArray m_post_data)
{
auto up = makeShared<Upload>();
up->m_url = std::move(url);
diff --git a/launcher/net/Upload.h b/launcher/net/Upload.h
index 2220c035..8be3f2c1 100644
--- a/launcher/net/Upload.h
+++ b/launcher/net/Upload.h
@@ -48,7 +48,7 @@ class Upload : public NetAction {
public:
using Ptr = shared_qobject_ptr<Upload>;
- static Upload::Ptr makeByteArray(QUrl url, QByteArray* output, QByteArray m_post_data);
+ static Upload::Ptr makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, QByteArray m_post_data);
auto abort() -> bool override;
auto canAbort() const -> bool override { return true; };
virtual void init() override{};