Hello Noel, all, I have attached a test document and a diff. I don't understand why this still crashs calc even if there is nothing anymore that can create any problems. How to reproduce: open test document in calc fix formula: =#NAME to =a save with button in the toolbar Regards, Markus
Attachment:
xlsx name import.xlsx
Description: MS-Excel 2007 spreadsheet
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx index f87b18c..5b80965 100644 --- a/filter/source/msfilter/escherex.cxx +++ b/filter/source/msfilter/escherex.cxx @@ -3306,16 +3306,18 @@ void EscherPersistTable::PtInsert( sal_uInt32 nID, sal_uInt32 nOfs ) sal_uInt32 EscherPersistTable::PtDelete( sal_uInt32 nID ) { - for( - EscherPersistTable_impl::iterator it = maPersistTable.begin(); - it < maPersistTable.end(); - ++it - ) { + EscherPersistTable_impl::iterator it = maPersistTable.begin(); + for( ; it != maPersistTable.end() ; ++it ) + { if ( (*it)->mnID == nID ) { - delete *it; - maPersistTable.erase( it ); + break; } } + if (it != maPersistTable.end()) + { + delete *it; + maPersistTable.erase( it ); + } return 0; }