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 );