summaryrefslogtreecommitdiff
path: root/src/plugins/git/gitsubmiteditor.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2014-08-04 15:59:25 +0300
committerOrgad Shaneh <orgads@gmail.com>2014-08-04 15:27:00 +0200
commited02e7f3c51210a47a769568d5eeb4e5b26f7246 (patch)
treebf5ea6cff2c32acba4a51c93806a282fe188ace8 /src/plugins/git/gitsubmiteditor.cpp
parent4dd200259f28e608b845e3c063251b5157042397 (diff)
downloadqt-creator-ed02e7f3c51210a47a769568d5eeb4e5b26f7246.tar.gz
Git: Fix crash when returning to commit editor from diff
The crash happens on Linux/Xming. 2 subsequents calls to slotRefreshCommitData occur, m_commitDataFetcher is released when the first one is handled, and the second call dereferences NULL. Change-Id: Ibc06fe5dd89b790ac84544f6842cbf345d118703 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/git/gitsubmiteditor.cpp')
-rw-r--r--src/plugins/git/gitsubmiteditor.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/plugins/git/gitsubmiteditor.cpp b/src/plugins/git/gitsubmiteditor.cpp
index d7844723b3..703ef82795 100644
--- a/src/plugins/git/gitsubmiteditor.cpp
+++ b/src/plugins/git/gitsubmiteditor.cpp
@@ -229,9 +229,10 @@ void GitSubmitEditor::updateFileModel()
m_firstUpdate = false;
return;
}
- if (m_workingDirectory.isEmpty())
+ GitSubmitEditorWidget *w = submitEditorWidget();
+ if (w->updateInProgress() || m_workingDirectory.isEmpty())
return;
- submitEditorWidget()->setUpdateInProgress(true);
+ w->setUpdateInProgress(true);
resetCommitDataFetcher();
m_commitDataFetcher = new CommitDataFetcher(m_commitType, m_workingDirectory);
connect(m_commitDataFetcher, SIGNAL(finished(bool)), this, SLOT(commitDataRetrieved(bool)));
@@ -244,10 +245,9 @@ void GitSubmitEditor::updateFileModel()
void GitSubmitEditor::commitDataRetrieved(bool success)
{
GitSubmitEditorWidget *w = submitEditorWidget();
- w->setUpdateInProgress(false);
if (success) {
setCommitData(m_commitDataFetcher->commitData());
- submitEditorWidget()->refreshLog(m_workingDirectory);
+ w->refreshLog(m_workingDirectory);
w->setEnabled(true);
} else {
// Nothing to commit left!
@@ -257,6 +257,7 @@ void GitSubmitEditor::commitDataRetrieved(bool success)
}
m_commitDataFetcher->deleteLater();
m_commitDataFetcher = 0;
+ w->setUpdateInProgress(false);
}
GitSubmitEditorPanelData GitSubmitEditor::panelData() const