summaryrefslogtreecommitdiff
path: root/src/plugins/cppeditor
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2018-04-26 10:16:32 +0200
committerEike Ziller <eike.ziller@qt.io>2018-04-26 10:16:32 +0200
commit62050437c3fc088d6bafc2fdce8bb6a7a3ae9394 (patch)
tree7acf011c4d6dc1c71aa2ed5da9a57c11befca046 /src/plugins/cppeditor
parent388713df12d7fe7eb26d69912427d8ff76e6bb5b (diff)
parenta14de75217eb4aa84a792f89e0ad83ac34c5a6a2 (diff)
downloadqt-creator-62050437c3fc088d6bafc2fdce8bb6a7a3ae9394.tar.gz
Merge remote-tracking branch 'origin/4.6'
Conflicts: src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp Change-Id: Ia723411f4b5c9c90f9786223ac6a7346d7ab9b99
Diffstat (limited to 'src/plugins/cppeditor')
-rw-r--r--src/plugins/cppeditor/cppeditorwidget.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/plugins/cppeditor/cppeditorwidget.cpp b/src/plugins/cppeditor/cppeditorwidget.cpp
index c66ec3b284..1a5fa099ac 100644
--- a/src/plugins/cppeditor/cppeditorwidget.cpp
+++ b/src/plugins/cppeditor/cppeditorwidget.cpp
@@ -435,10 +435,14 @@ void CppEditorWidget::findUsages(QTextCursor cursor)
{
if (cursor.isNull())
cursor = textCursor();
+ // 'this' in cursorInEditor is never used (and must never be used) asynchronously.
const CppTools::CursorInEditor cursorInEditor{cursor, textDocument()->filePath(), this};
+ QPointer<CppEditorWidget> cppEditorWidget = this;
refactoringEngine().findUsages(cursorInEditor,
- [this, cursor](const CppTools::Usages &usages) {
- findRenameCallback(this, cursor, usages);
+ [=](const CppTools::Usages &usages) {
+ if (!cppEditorWidget)
+ return;
+ findRenameCallback(cppEditorWidget.data(), cursor, usages);
});
}
@@ -447,10 +451,13 @@ void CppEditorWidget::renameUsages(const QString &replacement, QTextCursor curso
if (cursor.isNull())
cursor = textCursor();
CppTools::CursorInEditor cursorInEditor{cursor, textDocument()->filePath(), this};
+ QPointer<CppEditorWidget> cppEditorWidget = this;
refactoringEngine().globalRename(cursorInEditor,
- [this, cursor, &replacement](const CppTools::Usages &usages) {
- findRenameCallback(this, cursor, usages, true,
- replacement);
+ [=](const CppTools::Usages &usages) {
+ if (!cppEditorWidget)
+ return;
+ findRenameCallback(cppEditorWidget.data(), cursor, usages,
+ true, replacement);
},
replacement);
}