[Libreoffice-commits] core.git: sw/source
Shreyansh Gandhi
gandhishrey at gmail.com
Fri Jun 13 00:27:11 PDT 2014
sw/source/core/inc/rolbck.hxx | 13 ++++---------
sw/source/core/undo/rolbck.cxx | 10 +++-------
2 files changed, 7 insertions(+), 16 deletions(-)
New commits:
commit 5028475adb6fa164c18b93ab7fb83b2256d78a89
Author: Shreyansh Gandhi <gandhishrey at gmail.com>
Date: Tue Jun 10 22:08:39 2014 +0530
fdo#75757: Remove inheritance from std::vector
Problem: Many classes inherit directly from std::vector
See comment#6 by kendy for more details.
Solution: Removed class SwpHstry altogether and moved its
destructor's functionality to SwHistory's destructor.
Changed type of m_SwpHstry from SwpHstry to vector<SwHistoryHint*>
Change-Id: I32a7e111fef7c5e7b83ecee6469e173b5a21a5bf
Reviewed-on: https://gerrit.libreoffice.org/9725
Reviewed-by: Noel Grandin <noelgrandin at gmail.com>
Tested-by: Noel Grandin <noelgrandin at gmail.com>
diff --git a/sw/source/core/inc/rolbck.hxx b/sw/source/core/inc/rolbck.hxx
index 0c36352..8db7247 100644
--- a/sw/source/core/inc/rolbck.hxx
+++ b/sw/source/core/inc/rolbck.hxx
@@ -337,21 +337,16 @@ public:
};
-class SwpHstry : public std::vector<SwHistoryHint*> {
-public:
- // the destructor will free all objects still in the vector
- ~SwpHstry();
-};
-
class SwHistory
{
friend class SwDoc; // actually only SwDoc::DelUndoObj may access
friend class SwRegHistory; // for inserting History attributes
- SwpHstry m_SwpHstry;
+ std::vector<SwHistoryHint*> m_SwpHstry;
sal_uInt16 m_nEndDiff;
public:
+ typedef std::vector<SwHistoryHint*>::iterator SwpHstry_iterator;
SwHistory( sal_uInt16 nInitSz = 0 );
~SwHistory();
@@ -383,8 +378,8 @@ public:
void Move( sal_uInt16 nPos, SwHistory *pIns,
sal_uInt16 const nStart = 0)
{
- SwpHstry::iterator itSourceBegin = pIns->m_SwpHstry.begin() + nStart;
- SwpHstry::iterator itSourceEnd = pIns->m_SwpHstry.end();
+ SwpHstry_iterator itSourceBegin = pIns->m_SwpHstry.begin() + nStart;
+ SwpHstry_iterator itSourceEnd = pIns->m_SwpHstry.end();
if (itSourceBegin == itSourceEnd) return;
m_SwpHstry.insert(m_SwpHstry.begin() + nPos, itSourceBegin, itSourceEnd);
pIns->m_SwpHstry.erase( itSourceBegin, itSourceEnd );
diff --git a/sw/source/core/undo/rolbck.cxx b/sw/source/core/undo/rolbck.cxx
index 20fa77b..cafee25 100644
--- a/sw/source/core/undo/rolbck.cxx
+++ b/sw/source/core/undo/rolbck.cxx
@@ -976,6 +976,9 @@ SwHistory::SwHistory( sal_uInt16 nInitSz )
SwHistory::~SwHistory()
{
+ std::vector<SwHistoryHint*>::const_iterator it;
+ for(it = m_SwpHstry.begin(); it != m_SwpHstry.end(); ++it)
+ delete *it;
Delete( 0 );
}
@@ -1429,11 +1432,4 @@ void SwRegHistory::_MakeSetWhichIds()
}
}
}
-
-SwpHstry::~SwpHstry()
-{
- for(const_iterator it = begin(); it != end(); ++it)
- delete *it;
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list