incubator-ooo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a..@apache.org
Subject svn commit: r1363761 - in /incubator/ooo/branches/AOO34/main: ./ sw/source/filter/rtf/swparrtf.cxx
Date Fri, 20 Jul 2012 12:58:03 GMT
Author: alg
Date: Fri Jul 20 12:58:03 2012
New Revision: 1363761

URL: http://svn.apache.org/viewvc?rev=1363761&view=rev
Log:
page descriptor warnings fixed

Modified:
    incubator/ooo/branches/AOO34/main/   (props changed)
    incubator/ooo/branches/AOO34/main/sw/source/filter/rtf/swparrtf.cxx

Propchange: incubator/ooo/branches/AOO34/main/
------------------------------------------------------------------------------
  Merged /incubator/ooo/trunk/main:r1362945

Modified: incubator/ooo/branches/AOO34/main/sw/source/filter/rtf/swparrtf.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/AOO34/main/sw/source/filter/rtf/swparrtf.cxx?rev=1363761&r1=1363760&r2=1363761&view=diff
==============================================================================
--- incubator/ooo/branches/AOO34/main/sw/source/filter/rtf/swparrtf.cxx (original)
+++ incubator/ooo/branches/AOO34/main/sw/source/filter/rtf/swparrtf.cxx Fri Jul 20 12:58:03
2012
@@ -3249,6 +3249,7 @@ void SwRTFParser::ReadPageDescTbl()
 
     sal_uInt16 nCols = USHRT_MAX, nColSpace = USHRT_MAX, nAktCol = 0;
     SvUShorts aColumns;
+    ::std::map< const SwPageDesc*, sal_uInt16 > aFollowMap; //store index of following
page descriptors
 
     while( nNumOpenBrakets && IsParserWorking() )
     {
@@ -3322,10 +3323,9 @@ void SwRTFParser::ReadPageDescTbl()
             break;
 
         case RTF_PGDSCNXT:
-            // setze erstmal nur die Nummer als Follow. Am Ende der
-            // Tabelle wird diese entsprechend korrigiert !!
+            // store index of follow in map; will be fixed up later
             if( nTokenValue )
-                pPg->SetFollow( (const SwPageDesc*)nTokenValue );
+                aFollowMap.insert( ::std::pair<const SwPageDesc*, sal_uInt16>( pPg,
nTokenValue ));
             else
                 pPg->SetFollow( & const_cast<const SwDoc *>(pDoc)
                                 ->GetPageDesc( 0 ) );
@@ -3506,10 +3506,13 @@ void SwRTFParser::ReadPageDescTbl()
     for( nPos = 0; nPos < pDoc->GetPageDescCnt(); ++nPos )
     {
         SwPageDesc* pPgDsc = &pDoc->_GetPageDesc( nPos );
-        if( (sal_uInt16)(long)pPgDsc->GetFollow() < pDoc->GetPageDescCnt() )
-            pPgDsc->SetFollow(& const_cast<const SwDoc *>(pDoc)
-                              ->GetPageDesc((sal_uInt16)(long)
-                                            pPgDsc->GetFollow()));
+        std::map< const SwPageDesc*, sal_uInt16 >::const_iterator aIter =
+            aFollowMap.find( pPgDsc );
+        if (aIter != aFollowMap.end())
+        {
+            if ((*aIter).second < pDoc->GetPageDescCnt())
+                pPgDsc->SetFollow(& const_cast<const SwDoc *>(pDoc)->GetPageDesc((*aIter).second));
+        }
     }
 
     SetChkStyleAttr( bSaveChkStyleAttr );



Mime
View raw message