diff options
author | Caolán McNamara <caolanm@redhat.com> | 2013-11-01 13:10:39 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-11-01 14:28:20 +0000 |
commit | 3b27470860cfa377dfc0cb940bba204d827434ad (patch) | |
tree | 4417f1040f432d6fa9dbc5aa0a359d1bab0d59ac | |
parent | dc704d724fc2955a76688f95660522478cacf6e6 (diff) |
Resolves: fdo#71106 editing dde function crashes
Change-Id: Id2f4bffb7de7201ddeb8f75daaa2723cc42c59b0
-rw-r--r-- | sc/source/core/tool/interpr2.cxx | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx index 3d13382aecd8..8a3bc407b40f 100644 --- a/sc/source/core/tool/interpr2.cxx +++ b/sc/source/core/tool/interpr2.cxx @@ -2040,7 +2040,7 @@ void ScInterpreter::ScDde() //! Dde-Links (zusaetzlich) effizienter am Dokument speichern !!!!! // ScDdeLink* pLink = pDok->GetDdeLink( aAppl, aTopic, aItem ); - bool bWasError = ( pMyFormulaCell->GetRawError() != 0 ); + bool bWasError = ( pMyFormulaCell && pMyFormulaCell->GetRawError() != 0 ); if (!pLink) { @@ -2056,19 +2056,23 @@ void ScInterpreter::ScDde() //! asynchron auswerten ??? pLink->TryUpdate(); // TryUpdate ruft Update nicht mehrfach auf - // StartListening erst nach dem Update, sonst circular reference - pMyFormulaCell->StartListening( *pLink ); + if (pMyFormulaCell) + { + // StartListening erst nach dem Update, sonst circular reference + pMyFormulaCell->StartListening( *pLink ); + } } else { - pMyFormulaCell->StartListening( *pLink ); + if (pMyFormulaCell) + pMyFormulaCell->StartListening( *pLink ); } // Wenn aus dem Reschedule beim Ausfuehren des Links ein Fehler // (z.B. zirkulaere Referenz) entstanden ist, der vorher nicht da war, // das Fehler-Flag zuruecksetzen: - if ( pMyFormulaCell->GetRawError() && !bWasError ) + if ( pMyFormulaCell && pMyFormulaCell->GetRawError() && !bWasError ) pMyFormulaCell->SetErrCode(0); // Wert abfragen |