diff --git a/platform/qt/src/mbgl/http_file_source.cpp b/platform/qt/src/mbgl/http_file_source.cpp index b5885940c15..892955de63b 100644 --- a/platform/qt/src/mbgl/http_file_source.cpp +++ b/platform/qt/src/mbgl/http_file_source.cpp @@ -106,8 +106,9 @@ HTTPFileSource::HTTPFileSource(const ResourceOptions& resourceOptions, const Cli HTTPFileSource::~HTTPFileSource() = default; -std::unique_ptr HTTPFileSource::request(const Resource& resource, Callback callback) { - return std::make_unique(impl.get(), resource, callback); +std::unique_ptr HTTPFileSource::request(const Resource& resource, + FileSource::CopyableCallback callback) { + return std::make_unique(impl.get(), resource, std::move(callback)); } void HTTPFileSource::setResourceOptions(ResourceOptions options) { diff --git a/platform/qt/src/mbgl/http_request.cpp b/platform/qt/src/mbgl/http_request.cpp index 973760a419a..550d2821a9d 100644 --- a/platform/qt/src/mbgl/http_request.cpp +++ b/platform/qt/src/mbgl/http_request.cpp @@ -13,10 +13,12 @@ namespace mbgl { -HTTPRequest::HTTPRequest(HTTPFileSource::Impl* context, const Resource& resource, FileSource::Callback callback) +HTTPRequest::HTTPRequest(HTTPFileSource::Impl* context, + const Resource& resource, + FileSource::CopyableCallback callback) : m_context(context), m_resource(resource), - m_callback(callback) { + m_callback(std::move(callback)) { m_context->request(this); } diff --git a/platform/qt/src/mbgl/http_request.hpp b/platform/qt/src/mbgl/http_request.hpp index 5486b686caf..5e53a4266f3 100644 --- a/platform/qt/src/mbgl/http_request.hpp +++ b/platform/qt/src/mbgl/http_request.hpp @@ -14,7 +14,7 @@ class Response; class HTTPRequest : public AsyncRequest { public: - HTTPRequest(HTTPFileSource::Impl*, const Resource&, FileSource::Callback); + HTTPRequest(HTTPFileSource::Impl*, const Resource&, FileSource::CopyableCallback); virtual ~HTTPRequest(); QUrl requestUrl() const; @@ -25,7 +25,7 @@ class HTTPRequest : public AsyncRequest { private: HTTPFileSource::Impl* m_context; Resource m_resource; - FileSource::Callback m_callback; + FileSource::CopyableCallback m_callback; bool m_handled = false; }; diff --git a/platform/qt/src/mbgl/run_loop.cpp b/platform/qt/src/mbgl/run_loop.cpp index ea1828dea07..9831602ecd3 100644 --- a/platform/qt/src/mbgl/run_loop.cpp +++ b/platform/qt/src/mbgl/run_loop.cpp @@ -107,7 +107,7 @@ void RunLoop::waitForEmpty([[maybe_unused]] const mbgl::util::SimpleIdentity tag } } -void RunLoop::addWatch(int fd, Event event, std::function&& cb) { +void RunLoop::addWatch(int fd, Event event, std23::move_only_function&& cb) { MBGL_VERIFY_THREAD(tid); if (event == Event::Read || event == Event::ReadWrite) { diff --git a/platform/qt/src/mbgl/run_loop_impl.hpp b/platform/qt/src/mbgl/run_loop_impl.hpp index c1fe8578e31..650b5e58ce3 100644 --- a/platform/qt/src/mbgl/run_loop_impl.hpp +++ b/platform/qt/src/mbgl/run_loop_impl.hpp @@ -13,7 +13,7 @@ namespace mbgl { namespace util { -using WatchCallback = std::function; +using WatchCallback = std23::move_only_function; using WatchPair = std::pair, WatchCallback>; class RunLoop::Impl : public QObject { diff --git a/platform/qt/src/utils/scheduler.cpp b/platform/qt/src/utils/scheduler.cpp index a457d438363..af99ed7335f 100644 --- a/platform/qt/src/utils/scheduler.cpp +++ b/platform/qt/src/utils/scheduler.cpp @@ -27,7 +27,7 @@ void Scheduler::schedule(mbgl::util::SimpleIdentity, Task&& function) { } void Scheduler::processEvents() { - std::queue> taskQueue; + std::queue taskQueue; { const std::unique_lock lock(m_taskQueueMutex); std::swap(taskQueue, m_taskQueue); diff --git a/platform/qt/src/utils/scheduler.hpp b/platform/qt/src/utils/scheduler.hpp index d9f5c6dce7d..15020a9f4cb 100644 --- a/platform/qt/src/utils/scheduler.hpp +++ b/platform/qt/src/utils/scheduler.hpp @@ -39,7 +39,7 @@ class Scheduler : public QObject, public mbgl::Scheduler { std::mutex m_taskQueueMutex; std::condition_variable cvEmpty; std::atomic pendingItems; - std::queue> m_taskQueue; + std::queue m_taskQueue; mapbox::base::WeakPtrFactory weakFactory{this}; // Do not add members here, see `WeakPtrFactory` };