[Libreoffice-commits] .: 4 commits - editeng/source sw/source
Kohei Yoshida
kohei at kemper.freedesktop.org
Tue Mar 27 12:07:26 PDT 2012
editeng/source/editeng/edtspell.cxx | 96 +++++++++++++++++++++++++++---------
editeng/source/editeng/edtspell.hxx | 27 +++++++---
sw/source/core/doc/docedt.cxx | 34 +++++-------
3 files changed, 107 insertions(+), 50 deletions(-)
New commits:
commit 7628ced726c4de4bb9c98675c1ff77f5b7762ab6
Author: Bartosz Kosiorek <gang65 at poczta.onet.pl>
Date: Sun Mar 25 23:46:01 2012 +0200
Convert SV_PTRARR_DEL to boost::ptr_vector
diff --git a/sw/source/core/doc/docedt.cxx b/sw/source/core/doc/docedt.cxx
index 6c73ba1..c805779 100644
--- a/sw/source/core/doc/docedt.cxx
+++ b/sw/source/core/doc/docedt.cxx
@@ -161,9 +161,7 @@ struct _SaveRedline
}
};
-SV_DECL_PTRARR_DEL( _SaveRedlines, _SaveRedline*, 0 )
-
-SV_IMPL_PTRARR( _SaveRedlines, _SaveRedline* )
+typedef boost::ptr_vector< _SaveRedline > _SaveRedlines;
bool lcl_MayOverwrite( const SwTxtNode *pNode, const xub_StrLen nPos )
{
@@ -532,7 +530,7 @@ void lcl_SaveRedlines( const SwPaM& aPam, _SaveRedlines& rArr )
// save the current redline
_SaveRedline* pSave = new _SaveRedline( pCurrent, *pStart );
- rArr.C40_INSERT( _SaveRedline, pSave, rArr.Count() );
+ rArr.push_back( pSave );
}
}
@@ -545,11 +543,10 @@ void lcl_RestoreRedlines( SwDoc* pDoc, const SwPosition& rPos, _SaveRedlines& rA
RedlineMode_t eOld = pDoc->GetRedlineMode();
pDoc->SetRedlineMode_intern( (RedlineMode_t)(( eOld & ~nsRedlineMode_t::REDLINE_IGNORE) | nsRedlineMode_t::REDLINE_ON ));
- for( sal_uInt16 n = 0; n < rArr.Count(); ++n )
+ for( size_t n = 0; n < rArr.size(); ++n )
{
- _SaveRedline* pSave = rArr[ n ];
- pSave->SetPos( rPos );
- pDoc->AppendRedline( pSave->pRedl, true );
+ rArr[ n ].SetPos( rPos );
+ pDoc->AppendRedline( rArr[ n ].pRedl, true );
}
pDoc->SetRedlineMode_intern( eOld );
@@ -590,7 +587,7 @@ void lcl_SaveRedlines( const SwNodeRange& rRg, _SaveRedlines& rArr )
pTmpPos->nNode.GetNode().GetCntntNode(), 0 );
_SaveRedline* pSave = new _SaveRedline( pNewRedl, rRg.aStart );
- rArr.C40_INSERT( _SaveRedline, pSave, rArr.Count() );
+ rArr.push_back( pSave );
pTmpPos = pTmp->End();
pTmpPos->nNode = rRg.aEnd;
@@ -613,7 +610,7 @@ void lcl_SaveRedlines( const SwNodeRange& rRg, _SaveRedlines& rArr )
{
// move everything
_SaveRedline* pSave = new _SaveRedline( pTmp, rRg.aStart );
- rArr.C40_INSERT( _SaveRedline, pSave, rArr.Count() );
+ rArr.push_back( pSave );
}
else
{
@@ -625,7 +622,7 @@ void lcl_SaveRedlines( const SwNodeRange& rRg, _SaveRedlines& rArr )
pTmpPos->nNode.GetNode().GetCntntNode(), 0 );
_SaveRedline* pSave = new _SaveRedline( pNewRedl, rRg.aStart );
- rArr.C40_INSERT( _SaveRedline, pSave, rArr.Count() );
+ rArr.push_back( pSave );
pTmpPos = pTmp->Start();
pTmpPos->nNode = rRg.aEnd;
@@ -646,11 +643,10 @@ void lcl_RestoreRedlines( SwDoc* pDoc, sal_uInt32 nInsPos, _SaveRedlines& rArr )
RedlineMode_t eOld = pDoc->GetRedlineMode();
pDoc->SetRedlineMode_intern( (RedlineMode_t)(( eOld & ~nsRedlineMode_t::REDLINE_IGNORE) | nsRedlineMode_t::REDLINE_ON ));
- for( sal_uInt16 n = 0; n < rArr.Count(); ++n )
+ for( size_t n = 0; n < rArr.size(); ++n )
{
- _SaveRedline* pSave = rArr[ n ];
- pSave->SetPos( nInsPos );
- pDoc->AppendRedline( pSave->pRedl, true );
+ rArr[ n ].SetPos( nInsPos );
+ pDoc->AppendRedline( rArr[ n ].pRedl, true );
}
pDoc->SetRedlineMode_intern( eOld );
@@ -880,7 +876,7 @@ bool SwDoc::MoveRange( SwPaM& rPaM, SwPosition& rPos, SwMoveFlags eMvFlags )
_SaveFlyInRange( rPaM, rPos.nNode, aSaveFlyArr, 0 != ( DOC_MOVEALLFLYS & eMvFlags ) );
// save redlines (if DOC_MOVEREDLINES is used)
- _SaveRedlines aSaveRedl( 0 );
+ _SaveRedlines aSaveRedl;
if( DOC_MOVEREDLINES & eMvFlags && GetRedlineTbl().Count() )
{
lcl_SaveRedlines( rPaM, aSaveRedl );
@@ -1084,7 +1080,7 @@ bool SwDoc::MoveRange( SwPaM& rPaM, SwPosition& rPos, SwMoveFlags eMvFlags )
_RestFlyInRange( aSaveFlyArr, rPaM.Start()->nNode, &(rPos.nNode) );
// restore redlines (if DOC_MOVEREDLINES is used)
- if( aSaveRedl.Count() )
+ if( !aSaveRedl.empty() )
{
lcl_RestoreRedlines( this, *aSavePam.Start(), aSaveRedl );
}
@@ -1129,7 +1125,7 @@ bool SwDoc::MoveNodeRange( SwNodeRange& rRange, SwNodeIndex& rPos,
GetFtnIdxs(), aTmpFntIdx );
}
- _SaveRedlines aSaveRedl( 0 );
+ _SaveRedlines aSaveRedl;
SvPtrarr aSavRedlInsPosArr( 0 );
if( DOC_MOVEREDLINES & eMvFlags && GetRedlineTbl().Count() )
{
@@ -1212,7 +1208,7 @@ bool SwDoc::MoveNodeRange( SwNodeRange& rRange, SwNodeIndex& rPos,
}
}
- if( aSaveRedl.Count() )
+ if( !aSaveRedl.empty() )
lcl_RestoreRedlines( this, aIdx.GetIndex(), aSaveRedl );
if( pUndo )
commit 3670b2a2b15c5342562080630037e1959659da73
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date: Tue Mar 27 14:27:02 2012 -0400
Let's hide stuff like this from header..
diff --git a/editeng/source/editeng/edtspell.cxx b/editeng/source/editeng/edtspell.cxx
index bf21be8..b3c9dbb 100644
--- a/editeng/source/editeng/edtspell.cxx
+++ b/editeng/source/editeng/edtspell.cxx
@@ -207,6 +207,8 @@ void EditSpellWrapper::CheckSpellTo()
//////////////////////////////////////////////////////////////////////
+#define NOT_INVALID 0xFFFF
+
WrongList::WrongList() : nInvalidStart(0), nInvalidEnd(0xFFFF) {}
WrongList::WrongList(const WrongList& r) :
@@ -216,6 +218,17 @@ WrongList::WrongList(const WrongList& r) :
WrongList::~WrongList() {}
+bool WrongList::IsInvalid() const
+{
+ return nInvalidStart != NOT_INVALID;
+}
+
+void WrongList::SetValid()
+{
+ nInvalidStart = NOT_INVALID;
+ nInvalidEnd = 0;
+}
+
void WrongList::MarkInvalid( sal_uInt16 nS, sal_uInt16 nE )
{
if ( ( nInvalidStart == NOT_INVALID ) || ( nInvalidStart > nS ) )
diff --git a/editeng/source/editeng/edtspell.hxx b/editeng/source/editeng/edtspell.hxx
index 1b23b17..52d1bbd 100644
--- a/editeng/source/editeng/edtspell.hxx
+++ b/editeng/source/editeng/edtspell.hxx
@@ -81,8 +81,6 @@ struct WrongRange
WrongRange( sal_uInt16 nS, sal_uInt16 nE ) { nStart = nS; nEnd = nE; }
};
-#define NOT_INVALID 0xFFFF
-
class WrongList
{
private:
@@ -100,8 +98,8 @@ public:
WrongList(const WrongList& r);
~WrongList();
- sal_Bool IsInvalid() const { return nInvalidStart != NOT_INVALID; }
- void SetValid() { nInvalidStart = NOT_INVALID; nInvalidEnd = 0; }
+ bool IsInvalid() const;
+ void SetValid();
void MarkInvalid( sal_uInt16 nS, sal_uInt16 nE );
sal_uInt16 GetInvalidStart() const { return nInvalidStart; }
commit 80ecd30e1c7b753f2b24147e47204c97d253d394
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date: Tue Mar 27 14:19:31 2012 -0400
It's cleaner to use copy ctor for cloning.
diff --git a/editeng/source/editeng/edtspell.cxx b/editeng/source/editeng/edtspell.cxx
index 13dcf28..bf21be8 100644
--- a/editeng/source/editeng/edtspell.cxx
+++ b/editeng/source/editeng/edtspell.cxx
@@ -207,15 +207,14 @@ void EditSpellWrapper::CheckSpellTo()
//////////////////////////////////////////////////////////////////////
-WrongList::WrongList()
-{
- nInvalidStart = 0;
- nInvalidEnd = 0xFFFF;
-}
+WrongList::WrongList() : nInvalidStart(0), nInvalidEnd(0xFFFF) {}
-WrongList::~WrongList()
-{
-}
+WrongList::WrongList(const WrongList& r) :
+ maRanges(r.maRanges),
+ nInvalidStart(r.nInvalidStart),
+ nInvalidEnd(r.nInvalidEnd) {}
+
+WrongList::~WrongList() {}
void WrongList::MarkInvalid( sal_uInt16 nS, sal_uInt16 nE )
{
@@ -244,7 +243,7 @@ void WrongList::TextInserted( sal_uInt16 nPos, sal_uInt16 nNew, sal_Bool bPosIsS
for (size_t i = 0, n = maRanges.size(); i < n; ++i)
{
- WrongRange & rWrong = maRanges[i]; // why does this thing derive vector?
+ WrongRange& rWrong = maRanges[i];
bool bRefIsValid = true;
if (rWrong.nEnd >= nPos)
{
@@ -477,11 +476,7 @@ void WrongList::MarkWrongsInvalid()
WrongList* WrongList::Clone() const
{
- WrongList* pNew = new WrongList;
- pNew->maRanges.reserve(maRanges.size());
- for (WrongList::const_iterator i = maRanges.begin(); i != maRanges.end(); ++i)
- pNew->maRanges.push_back(*i);
- return pNew;
+ return new WrongList(*this);
}
// #i102062#
diff --git a/editeng/source/editeng/edtspell.hxx b/editeng/source/editeng/edtspell.hxx
index 47dc59f..1b23b17 100644
--- a/editeng/source/editeng/edtspell.hxx
+++ b/editeng/source/editeng/edtspell.hxx
@@ -96,8 +96,9 @@ public:
typedef std::vector<WrongRange>::iterator iterator;
typedef std::vector<WrongRange>::const_iterator const_iterator;
- WrongList();
- ~WrongList();
+ WrongList();
+ WrongList(const WrongList& r);
+ ~WrongList();
sal_Bool IsInvalid() const { return nInvalidStart != NOT_INVALID; }
void SetValid() { nInvalidStart = NOT_INVALID; nInvalidEnd = 0; }
commit e747c9df0bcbc68935b0adf0eaa166ae1a1abe05
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date: Tue Mar 27 14:13:47 2012 -0400
Publicly deriving from STL is not a good idea...
diff --git a/editeng/source/editeng/edtspell.cxx b/editeng/source/editeng/edtspell.cxx
index 2963f12..13dcf28 100644
--- a/editeng/source/editeng/edtspell.cxx
+++ b/editeng/source/editeng/edtspell.cxx
@@ -242,10 +242,10 @@ void WrongList::TextInserted( sal_uInt16 nPos, sal_uInt16 nNew, sal_Bool bPosIsS
nInvalidEnd = nPos+nNew;
}
- for (WrongList::size_type i = 0; i < size(); ++i)
+ for (size_t i = 0, n = maRanges.size(); i < n; ++i)
{
- WrongRange & rWrong = (*this)[i]; // why does this thing derive vector?
- sal_Bool bRefIsValid = sal_True;
+ WrongRange & rWrong = maRanges[i]; // why does this thing derive vector?
+ bool bRefIsValid = true;
if (rWrong.nEnd >= nPos)
{
// Move all Wrongs after the insert position...
@@ -271,7 +271,7 @@ void WrongList::TextInserted( sal_uInt16 nPos, sal_uInt16 nNew, sal_Bool bPosIsS
// Split Wrong...
WrongRange aNewWrong(rWrong.nStart, nPos);
rWrong.nStart = nPos + 1;
- insert(begin() + i, aNewWrong);
+ maRanges.insert(maRanges.begin() + i, aNewWrong);
// Reference no longer valid after Insert, the other
// was inserted in front of this position
bRefIsValid = false;
@@ -351,7 +351,7 @@ void WrongList::TextDeleted( sal_uInt16 nPos, sal_uInt16 nDeleted )
"TextDeleted, WrongRange: Start >= End?!");
if ( bDelWrong )
{
- i = erase(i);
+ i = maRanges.erase(i);
}
else
{
@@ -425,7 +425,7 @@ void WrongList::ClearWrongs( sal_uInt16 nStart, sal_uInt16 nEnd,
}
else
{
- i = erase(i);
+ i = maRanges.erase(i);
// no increment here
}
}
@@ -461,26 +461,26 @@ void WrongList::InsertWrong( sal_uInt16 nStart, sal_uInt16 nEnd,
}
}
- if (nPos != end())
- insert(nPos, WrongRange(nStart, nEnd));
+ if (nPos != maRanges.end())
+ maRanges.insert(nPos, WrongRange(nStart, nEnd));
else
- push_back(WrongRange(nStart, nEnd));
+ maRanges.push_back(WrongRange(nStart, nEnd));
SAL_WARN_IF(DbgIsBuggy(), "editeng", "InsertWrong: WrongList broken!");
}
void WrongList::MarkWrongsInvalid()
{
- if (!empty())
- MarkInvalid(front().nStart, back().nEnd );
+ if (!maRanges.empty())
+ MarkInvalid(maRanges.front().nStart, maRanges.back().nEnd );
}
WrongList* WrongList::Clone() const
{
WrongList* pNew = new WrongList;
- pNew->reserve(size());
- for (WrongList::const_iterator i = begin(); i != end(); ++i)
- pNew->push_back(*i);
+ pNew->maRanges.reserve(maRanges.size());
+ for (WrongList::const_iterator i = maRanges.begin(); i != maRanges.end(); ++i)
+ pNew->maRanges.push_back(*i);
return pNew;
}
@@ -490,13 +490,13 @@ bool WrongList::operator==(const WrongList& rCompare) const
// cleck direct members
if(GetInvalidStart() != rCompare.GetInvalidStart()
|| GetInvalidEnd() != rCompare.GetInvalidEnd()
- || size() != rCompare.size())
+ || maRanges.size() != rCompare.maRanges.size())
return false;
- WrongList::const_iterator rCA = begin();
- WrongList::const_iterator rCB = rCompare.begin();
+ WrongList::const_iterator rCA = maRanges.begin();
+ WrongList::const_iterator rCB = rCompare.maRanges.begin();
- for (; rCA != end(); ++rCA, ++rCB)
+ for (; rCA != maRanges.end(); ++rCA, ++rCB)
{
if(rCA->nStart != rCB->nStart || rCA->nEnd != rCB->nEnd)
return false;
@@ -505,6 +505,46 @@ bool WrongList::operator==(const WrongList& rCompare) const
return true;
}
+bool WrongList::empty() const
+{
+ return maRanges.empty();
+}
+
+void WrongList::push_back(const WrongRange& rRange)
+{
+ maRanges.push_back(rRange);
+}
+
+WrongRange& WrongList::back()
+{
+ return maRanges.back();
+}
+
+const WrongRange& WrongList::back() const
+{
+ return maRanges.back();
+}
+
+WrongList::iterator WrongList::begin()
+{
+ return maRanges.begin();
+}
+
+WrongList::iterator WrongList::end()
+{
+ return maRanges.end();
+}
+
+WrongList::const_iterator WrongList::begin() const
+{
+ return maRanges.begin();
+}
+
+WrongList::const_iterator WrongList::end() const
+{
+ return maRanges.end();
+}
+
sal_Bool WrongList::DbgIsBuggy() const
{
// Check if the ranges overlap.
diff --git a/editeng/source/editeng/edtspell.hxx b/editeng/source/editeng/edtspell.hxx
index edf2ec1..47dc59f 100644
--- a/editeng/source/editeng/edtspell.hxx
+++ b/editeng/source/editeng/edtspell.hxx
@@ -83,15 +83,19 @@ struct WrongRange
#define NOT_INVALID 0xFFFF
-class WrongList : public std::vector<WrongRange>
+class WrongList
{
private:
+ std::vector<WrongRange> maRanges;
sal_uInt16 nInvalidStart;
sal_uInt16 nInvalidEnd;
sal_Bool DbgIsBuggy() const;
public:
+ typedef std::vector<WrongRange>::iterator iterator;
+ typedef std::vector<WrongRange>::const_iterator const_iterator;
+
WrongList();
~WrongList();
@@ -119,6 +123,16 @@ public:
// #i102062#
bool operator==(const WrongList& rCompare) const;
+
+ bool empty() const;
+ void push_back(const WrongRange& rRange);
+ WrongRange& back();
+ const WrongRange& back() const;
+
+ iterator begin();
+ iterator end();
+ const_iterator begin() const;
+ const_iterator end() const;
};
class EdtAutoCorrDoc : public SvxAutoCorrDoc
More information about the Libreoffice-commits
mailing list