diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2014-08-04 15:59:25 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2014-08-04 15:27:00 +0200 |
commit | ed02e7f3c51210a47a769568d5eeb4e5b26f7246 (patch) | |
tree | bf5ea6cff2c32acba4a51c93806a282fe188ace8 /src/plugins/git/gitsubmiteditor.cpp | |
parent | 4dd200259f28e608b845e3c063251b5157042397 (diff) | |
download | qt-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.cpp | 9 |
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 |