From 831701bb67c91b3448ba78e8622c44562e4a1a70 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Mon, 2 Mar 2015 09:18:35 +0200 Subject: [PATCH] Avoid storing references to rvalue FileName strings Following 73616849, it is dangerous to store a reference to the rvalue of toString(), since it might become dangling. Example: FileName foo() { return FileName::fromString(QLatin1String("/some/file")); } void func() { const QString &fileName = foo().toString(); // fileName is now a dangling reference } Change-Id: I5dfad5dc8dd568a0a3c8f9f71ad93292dc26cbbe Reviewed-by: hjk --- src/plugins/coreplugin/editormanager/editormanager.cpp | 2 +- src/plugins/projectexplorer/session.cpp | 2 +- src/plugins/texteditor/texteditor.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index f1db1acbda1..e7ff06cff02 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1662,7 +1662,7 @@ bool EditorManagerPrivate::saveDocument(IDocument *document) document->checkPermissions(); - const QString &fileName = document->filePath().toString(); + const QString fileName = document->filePath().toString(); if (fileName.isEmpty()) return saveDocumentAs(document); diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index 022d99a99ed..0d4b91048a4 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -490,7 +490,7 @@ QStringList SessionManagerPrivate::dependenciesOrder() const // copy the map to a temporary list foreach (Project *pro, m_projects) { - const QString &proName = pro->projectFilePath().toString(); + const QString proName = pro->projectFilePath().toString(); unordered << QPair(proName, m_depMap.value(proName)); } diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index ee5ad4f5a26..342eceb8ed1 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -7201,7 +7201,7 @@ void TextEditorWidget::configureGenericHighlighter() setCodeFoldingSupported(true); } } else { - const QString &fileName = textDocument()->filePath().toString(); + const QString fileName = textDocument()->filePath().toString(); if (TextEditorSettings::highlighterSettings().isIgnoredFilePattern(fileName)) d->m_isMissingSyntaxDefinition = false; }