Hi Noel,

On 14.02.2012 15:25, Noel Grandin wrote:
Note that I tried converting these usages to boost::ptr_map, but I ran
into entirely undecipherable C++ template errors.

Sorry for the late review... :(

What line produces that error? I suppose we should do use ptr_map, because even you forgot to delete object :)

@@ -385,14 +380,12 @@ void SvxRTFParser::ReadStyleTable()
             {
                 pStyle->sName = DelCharAtEnd( aToken, ';' );

-                if( aStyleTbl.Count() )
+                if( !aStyleTbl.empty() )
                 {
-                    SvxRTFStyleType* pOldSt = aStyleTbl.Remove( nStyleNo );
-                    if( pOldSt )
-                        delete pOldSt;
+                    aStyleTbl.erase(nStyleNo);
                 }

Also

@@ -4041,10 +4046,11 @@ SwTxtFmtColl* SwRTFParser::MakeStyle( sal_uInt16 nNo, const 
SvxRTFStyleType& rSt
         if( iter == aTxtCollTbl.end())            // noch nicht vorhanden, 
also anlegen
         {
             // ist die ueberhaupt als Style vorhanden ?
-            SvxRTFStyleType* pMkStyle = GetStyleTbl().Get( nStyleNo );
-            pNext = pMkStyle
-                    ? MakeStyle( nStyleNo, *pMkStyle )
-                    : pDoc->GetTxtCollFromPool( RES_POOLCOLL_STANDARD, false );
+            SvxRTFStyleTbl::iterator styleIter = GetStyleTbl().find( nStyleNo 
);
+            if ( styleIter != GetStyleTbl().end() )
+                pNext = MakeStyle( nStyleNo, *styleIter->second );
+            else
+                pDoc->GetTxtCollFromPool( RES_POOLCOLL_STANDARD, false );
                   ^^^

should be pNext = pDoc->...

All the best,
Ivan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to