summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Kosiorek <gang65@openoffice.org>2010-09-23 07:28:37 +0200
committerBartosz Kosiorek <gang65@openoffice.org>2010-09-23 07:28:37 +0200
commitd71f7321610b24ff613f58684f5972e770922cc5 (patch)
tree766d3ecf4792a02ee334e3a6759f9d1f6949fb12
parent06b1f3b8fd5908a03d3c51c322d0e16e8c7d64ac (diff)
svarray: #i112395#: apply deque to WritingDirectionInfos
-rw-r--r--editeng/source/editeng/editdoc.cxx2
-rw-r--r--editeng/source/editeng/editdoc.hxx3
-rw-r--r--editeng/source/editeng/editdoc2.cxx4
-rw-r--r--editeng/source/editeng/impedit2.cxx18
-rw-r--r--editeng/source/editeng/impedit3.cxx2
5 files changed, 14 insertions, 15 deletions
diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx
index 3163987d86..4d8a8273dd 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -255,8 +255,6 @@ USHORT aV5Map[] = {
};
SV_IMPL_PTRARR( DummyContentList, ContentNode* );
-SV_IMPL_VARARR( WritingDirectionInfos, WritingDirectionInfo );
-
int SAL_CALL CompareStart( const void* pFirst, const void* pSecond )
{
diff --git a/editeng/source/editeng/editdoc.hxx b/editeng/source/editeng/editdoc.hxx
index ea54227033..1da0b0b0b5 100644
--- a/editeng/source/editeng/editdoc.hxx
+++ b/editeng/source/editeng/editdoc.hxx
@@ -114,7 +114,8 @@ struct WritingDirectionInfo
}
};
-SV_DECL_VARARR( WritingDirectionInfos, WritingDirectionInfo, 0, 4 )
+
+typedef std::deque< WritingDirectionInfo > WritingDirectionInfos;
typedef EditCharAttrib* EditCharAttribPtr;
SV_DECL_PTRARR( CharAttribArray, EditCharAttribPtr, 0, 4 )
diff --git a/editeng/source/editeng/editdoc2.cxx b/editeng/source/editeng/editdoc2.cxx
index cb1b1de0aa..9f23dcba44 100644
--- a/editeng/source/editeng/editdoc2.cxx
+++ b/editeng/source/editeng/editdoc2.cxx
@@ -239,7 +239,7 @@ void ParaPortion::MarkInvalid( USHORT nStart, short nDiff )
}
bInvalid = TRUE;
aScriptInfos.clear();
- aWritingDirectionInfos.Remove( 0, aWritingDirectionInfos.Count() );
+ aWritingDirectionInfos.clear();
}
void ParaPortion::MarkSelectionInvalid( USHORT nStart, USHORT /* nEnd */ )
@@ -258,7 +258,7 @@ void ParaPortion::MarkSelectionInvalid( USHORT nStart, USHORT /* nEnd */ )
bInvalid = TRUE;
bSimple = FALSE;
aScriptInfos.clear();
- aWritingDirectionInfos.Remove( 0, aWritingDirectionInfos.Count() );
+ aWritingDirectionInfos.clear();
}
USHORT ParaPortion::GetLineNumber( USHORT nIndex )
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index 9412bd62ed..5f00d9e5cf 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -1805,12 +1805,12 @@ void ImpEditEngine::InitScriptTypes( USHORT nPara )
rTypes[0].nScriptType = ( rTypes.size() > 1 ) ? rTypes[1].nScriptType : GetI18NScriptTypeOfLanguage( GetDefaultLanguage() );
// create writing direction information:
- if ( !pParaPortion->aWritingDirectionInfos.Count() )
+ if ( pParaPortion->aWritingDirectionInfos.empty() )
InitWritingDirections( nPara );
// i89825: Use CTL font for numbers embedded into an RTL run:
WritingDirectionInfos& rDirInfos = pParaPortion->aWritingDirectionInfos;
- for ( USHORT n = 0; n < rDirInfos.Count(); ++n )
+ for ( size_t n = 0; n < rDirInfos.size(); ++n )
{
const xub_StrLen nStart = rDirInfos[n].nStartPos;
const xub_StrLen nEnd = rDirInfos[n].nEndPos;
@@ -1983,7 +1983,7 @@ void ImpEditEngine::InitWritingDirections( USHORT nPara )
{
ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
WritingDirectionInfos& rInfos = pParaPortion->aWritingDirectionInfos;
- rInfos.Remove( 0, rInfos.Count() );
+ rInfos.clear();
BOOL bCTL = FALSE;
ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
@@ -2018,10 +2018,10 @@ void ImpEditEngine::InitWritingDirections( USHORT nPara )
int32_t nEnd;
UBiDiLevel nCurrDir;
- for ( USHORT nIdx = 0; nIdx < nCount; ++nIdx )
+ for ( size_t nIdx = 0; nIdx < static_cast<size_t>(nCount); ++nIdx )
{
ubidi_getLogicalRun( pBidi, nStart, &nEnd, &nCurrDir );
- rInfos.Insert( WritingDirectionInfo( nCurrDir, (USHORT)nStart, (USHORT)nEnd ), rInfos.Count() );
+ rInfos.push_back( WritingDirectionInfo( nCurrDir, (USHORT)nStart, (USHORT)nEnd ) );
nStart = nEnd;
}
@@ -2029,8 +2029,8 @@ void ImpEditEngine::InitWritingDirections( USHORT nPara )
}
// No infos mean no CTL and default dir is L2R...
- if ( !rInfos.Count() )
- rInfos.Insert( WritingDirectionInfo( 0, 0, (USHORT)pParaPortion->GetNode()->Len() ), rInfos.Count() );
+ if ( rInfos.empty() )
+ rInfos.push_back( WritingDirectionInfo( 0, 0, (USHORT)pParaPortion->GetNode()->Len() ) );
}
@@ -2094,12 +2094,12 @@ BYTE ImpEditEngine::GetRightToLeft( USHORT nPara, USHORT nPos, USHORT* pStart, U
if ( pNode && pNode->Len() )
{
ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
- if ( !pParaPortion->aWritingDirectionInfos.Count() )
+ if ( pParaPortion->aWritingDirectionInfos.empty() )
InitWritingDirections( nPara );
// BYTE nType = 0;
WritingDirectionInfos& rDirInfos = pParaPortion->aWritingDirectionInfos;
- for ( USHORT n = 0; n < rDirInfos.Count(); n++ )
+ for ( size_t n = 0; n < rDirInfos.size(); n++ )
{
if ( ( rDirInfos[n].nStartPos <= nPos ) && ( rDirInfos[n].nEndPos >= nPos ) )
{
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index a919f6c8d6..ea0c31aa61 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -2302,7 +2302,7 @@ void ImpEditEngine::CreateTextPortions( ParaPortion* pParaPortion, sal_uInt16& r
aPositions.Insert( rTypes[nT].nStartPos );
const WritingDirectionInfos& rWritingDirections = pParaPortion->aWritingDirectionInfos;
- for ( USHORT nD = 0; nD < rWritingDirections.Count(); nD++ )
+ for ( size_t nD = 0; nD < rWritingDirections.size(); nD++ )
aPositions.Insert( rWritingDirections[nD].nStartPos );
if ( mpIMEInfos && mpIMEInfos->nLen && mpIMEInfos->pAttribs && ( mpIMEInfos->aPos.GetNode() == pNode ) )