Skip to content

Commit

Permalink
fix: copy parameters in asyncSendMessageWithResult* to avoid crashes,…
Browse files Browse the repository at this point in the history
… see #703
  • Loading branch information
danieleds committed Aug 20, 2019
1 parent 45f90b6 commit 2f54099
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
8 changes: 4 additions & 4 deletions src/ui/EditorNS/editor.cpp
Expand Up @@ -419,7 +419,7 @@ namespace EditorNS

unsigned int messageIdentifier = 0;

QPromise<QVariant> Editor::asyncSendMessageWithResultP(const QString &msg, const QVariant &data)
QPromise<QVariant> Editor::asyncSendMessageWithResultP(const QString msg, const QVariant data)
{
unsigned int currentMsgIdentifier = ++messageIdentifier;

Expand Down Expand Up @@ -463,12 +463,12 @@ namespace EditorNS
return resultPromise;
}

QPromise<QVariant> Editor::asyncSendMessageWithResultP(const QString &msg)
QPromise<QVariant> Editor::asyncSendMessageWithResultP(const QString msg)
{
return this->asyncSendMessageWithResultP(msg, 0);
}

std::shared_future<QVariant> Editor::asyncSendMessageWithResult(const QString &msg, const QVariant &data, std::function<void(QVariant)> callback)
std::shared_future<QVariant> Editor::asyncSendMessageWithResult(const QString msg, const QVariant data, std::function<void(QVariant)> callback)
{
unsigned int currentMsgIdentifier = ++messageIdentifier;

Expand All @@ -495,7 +495,7 @@ namespace EditorNS
return fut;
}

std::shared_future<QVariant> Editor::asyncSendMessageWithResult(const QString &msg, std::function<void(QVariant)> callback)
std::shared_future<QVariant> Editor::asyncSendMessageWithResult(const QString msg, std::function<void(QVariant)> callback)
{
return this->asyncSendMessageWithResult(msg, 0, callback);
}
Expand Down
8 changes: 4 additions & 4 deletions src/ui/include/EditorNS/editor.h
Expand Up @@ -392,11 +392,11 @@ namespace EditorNS
* If set, you should NOT use the return value of this method.
* @return
*/
QPromise<QVariant> asyncSendMessageWithResultP(const QString &msg, const QVariant &data);
QPromise<QVariant> asyncSendMessageWithResultP(const QString &msg);
QPromise<QVariant> asyncSendMessageWithResultP(const QString msg, const QVariant data);
QPromise<QVariant> asyncSendMessageWithResultP(const QString msg);

std::shared_future<QVariant> asyncSendMessageWithResult(const QString &msg, const QVariant &data, std::function<void(QVariant)> callback = 0);
std::shared_future<QVariant> asyncSendMessageWithResult(const QString &msg, std::function<void(QVariant)> callback = 0);
std::shared_future<QVariant> asyncSendMessageWithResult(const QString msg, const QVariant data, std::function<void(QVariant)> callback = 0);
std::shared_future<QVariant> asyncSendMessageWithResult(const QString msg, std::function<void(QVariant)> callback = 0);

/**
* @brief Print the editor. As of Qt 5.11, it produces low-quality, non-vector graphics with big dimension.
Expand Down

0 comments on commit 2f54099

Please sign in to comment.