diff --git a/main/sc/source/filter/html/htmlpars.cxx b/main/sc/source/filter/html/htmlpars.cxx
index 126c406..f98f611 100644
--- a/main/sc/source/filter/html/htmlpars.cxx
+++ b/main/sc/source/filter/html/htmlpars.cxx
@@ -1897,40 +1897,6 @@ ScHTMLTable* ScHTMLTableMap::CreateTable( const ImportInfo& rInfo, bool bPreForm
return pTable;
}
-// ----------------------------------------------------------------------------
-
-/** Simplified forward iterator for convenience.
-
- Before the iterator can be dereferenced, it must be tested with the is()
- method. The iterator may be invalid directly after construction (e.g. empty
- container).
- */
-class ScHTMLTableIterator
-{
-public:
- /** Constructs the iterator for the passed table map.
- @param pTableMap Pointer to the table map (is allowed to be NULL). */
- explicit ScHTMLTableIterator( const ScHTMLTableMap* pTableMap );
-
- inline bool is() const { return maIter != maEnd; }
- inline ScHTMLTable* operator->() { return maIter->second.get(); }
- inline ScHTMLTable& operator*() { return *maIter->second; }
- inline ScHTMLTableIterator& operator++() { ++maIter; return *this; }
-
-private:
- ScHTMLTableMap::const_iterator maIter;
- ScHTMLTableMap::const_iterator maEnd;
-};
-
-ScHTMLTableIterator::ScHTMLTableIterator( const ScHTMLTableMap* pTableMap )
-{
- if( pTableMap )
- {
- maIter = pTableMap->begin();
- maEnd = pTableMap->end();
- }
-}
-
// ============================================================================
ScHTMLTableAutoId::ScHTMLTableAutoId( ScHTMLTableId& rnUnusedId ) :
@@ -2299,8 +2265,15 @@ void ScHTMLTable::ApplyCellBorders( ScDocument* pDoc, const ScAddress& rFirstPos
}
}
- for( ScHTMLTableIterator aIter( mxNestedTables.get() ); aIter.is(); ++aIter )
- aIter->ApplyCellBorders( pDoc, rFirstPos );
+ if ( mxNestedTables.get() )
+ {
+ for ( ScHTMLTableMap::const_iterator aIter( mxNestedTables->begin() );
+ aIter != mxNestedTables->end(); ++aIter )
+ {
+ if ( aIter->second.get() )
+ aIter->second->ApplyCellBorders( pDoc, rFirstPos );
+ }
+ }
}
// ----------------------------------------------------------------------------
@@ -2593,8 +2566,15 @@ void ScHTMLTable::CalcNeededDocSize(
void ScHTMLTable::FillEmptyCells()
{
- for( ScHTMLTableIterator aIter( mxNestedTables.get() ); aIter.is(); ++aIter )
- aIter->FillEmptyCells();
+ if ( mxNestedTables.get() )
+ {
+ for ( ScHTMLTableMap::const_iterator aIter( mxNestedTables->begin() );
+ aIter != mxNestedTables->end(); ++aIter )
+ {
+ if ( aIter->second.get() )
+ aIter->second->FillEmptyCells();
+ }
+ }
// insert the final vertically merged ranges into maUsedCells
for( const ScRange* pRange = maVMergedCells.First(); pRange; pRange = maVMergedCells.Next() )
@@ -2627,8 +2607,15 @@ void ScHTMLTable::FillEmptyCells()
void ScHTMLTable::RecalcDocSize()
{
// recalc table sizes recursively from inner to outer
- for( ScHTMLTableIterator aIter( mxNestedTables.get() ); aIter.is(); ++aIter )
- aIter->RecalcDocSize();
+ if ( mxNestedTables.get() )
+ {
+ for ( ScHTMLTableMap::const_iterator aIter( mxNestedTables->begin() );
+ aIter != mxNestedTables->end(); ++aIter )
+ {
+ if ( aIter->second.get() )
+ aIter->second->RecalcDocSize();
+ }
+ }
/* Two passes: first calculates the sizes of single columns/rows, then
the sizes of spanned columns/rows. This allows to fill nested tables