diff options
-rw-r--r-- | include/svtools/svparser.hxx | 15 | ||||
-rw-r--r-- | svtools/source/svrtf/svparser.cxx | 45 |
2 files changed, 24 insertions, 36 deletions
diff --git a/include/svtools/svparser.hxx b/include/svtools/svparser.hxx index d3294eac9c8b..f6cfc9c4743a 100644 --- a/include/svtools/svparser.hxx +++ b/include/svtools/svparser.hxx @@ -25,8 +25,7 @@ #include <tools/ref.hxx> #include <rtl/textenc.h> #include <rtl/ustring.hxx> -#include <boost/ptr_container/ptr_vector.hpp> -#include <boost/utility.hpp> +#include <boost/noncopyable.hpp> #include <vector> struct SvParser_Impl; @@ -248,21 +247,17 @@ public: * *======================================================================*/ -typedef boost::ptr_vector<SvKeyValue> SvKeyValueList_Impl; - class SVT_DLLPUBLIC SvKeyValueIterator : public SvRefBase, private boost::noncopyable { - /** Representation. - */ - SvKeyValueList_Impl* m_pList; - sal_uInt16 m_nPos; + struct Impl; + Impl* mpImpl; public: /** Construction/Destruction. */ - SvKeyValueIterator (void); - virtual ~SvKeyValueIterator (void); + SvKeyValueIterator(); + virtual ~SvKeyValueIterator(); /** Operation. */ diff --git a/svtools/source/svrtf/svparser.cxx b/svtools/source/svrtf/svparser.cxx index 14126096fb37..d8c5aea9f27f 100644 --- a/svtools/source/svrtf/svparser.cxx +++ b/svtools/source/svrtf/svparser.cxx @@ -17,13 +17,15 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include <stdio.h> #include <svtools/svparser.hxx> #include <tools/stream.hxx> #include <tools/debug.hxx> #include <rtl/textcvt.h> #include <rtl/tencinfo.h> +#include <stdio.h> +#include <boost/ptr_container/ptr_vector.hpp> + // structure to store the actuel data struct SvParser_Impl { @@ -649,40 +651,34 @@ IMPL_STATIC_LINK( SvParser, NewDataRead, void*, EMPTYARG ) * *======================================================================*/ -/* - * SvKeyValueIterator. - */ -SvKeyValueIterator::SvKeyValueIterator (void) - : m_pList (new SvKeyValueList_Impl), - m_nPos (0) +typedef boost::ptr_vector<SvKeyValue> SvKeyValueList_Impl; + +struct SvKeyValueIterator::Impl { -} + SvKeyValueList_Impl maList; + sal_uInt16 mnPos; -/* - * ~SvKeyValueIterator. - */ -SvKeyValueIterator::~SvKeyValueIterator (void) + Impl() : mnPos(0) {} +}; + +SvKeyValueIterator::SvKeyValueIterator() : mpImpl(new Impl) {} + +SvKeyValueIterator::~SvKeyValueIterator() { - delete m_pList; + delete mpImpl; } -/* - * GetFirst. - */ bool SvKeyValueIterator::GetFirst (SvKeyValue &rKeyVal) { - m_nPos = m_pList->size(); + mpImpl->mnPos = mpImpl->maList.size(); return GetNext (rKeyVal); } -/* - * GetNext. - */ bool SvKeyValueIterator::GetNext (SvKeyValue &rKeyVal) { - if (m_nPos > 0) + if (mpImpl->mnPos > 0) { - rKeyVal = (*m_pList)[--m_nPos]; + rKeyVal = mpImpl->maList[--mpImpl->mnPos]; return true; } else @@ -692,12 +688,9 @@ bool SvKeyValueIterator::GetNext (SvKeyValue &rKeyVal) } } -/* - * Append. - */ void SvKeyValueIterator::Append (const SvKeyValue &rKeyVal) { - m_pList->push_back(new SvKeyValue(rKeyVal)); + mpImpl->maList.push_back(new SvKeyValue(rKeyVal)); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |