summaryrefslogtreecommitdiff
path: root/writerfilter/source/rtftok/rtfdocumentimpl.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'writerfilter/source/rtftok/rtfdocumentimpl.hxx')
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.hxx31
1 files changed, 27 insertions, 4 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
index d1f261d9f486..393074a7acda 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
@@ -310,19 +310,42 @@ public:
};
/// An RTF stack is similar to std::stack, except that it has an operator[].
-struct RTFStack : public std::deque<RTFParserState>
+struct RTFStack
{
+private:
+ std::deque<RTFParserState> m_Impl;
+public:
RTFParserState& top()
{
- return back();
+ if (m_Impl.empty())
+ throw std::out_of_range("empty rtf state stack");
+ return m_Impl.back();
}
void pop()
{
- return pop_back();
+ if (m_Impl.empty())
+ throw std::out_of_range("empty rtf state stack");
+ return m_Impl.pop_back();
}
void push(RTFParserState const& rState)
{
- return push_back(rState);
+ return m_Impl.push_back(rState);
+ }
+ bool empty() const
+ {
+ return m_Impl.empty();
+ }
+ size_t size() const
+ {
+ return m_Impl.size();
+ }
+ const RTFParserState& operator[](size_t nIndex) const
+ {
+ return m_Impl[nIndex];
+ }
+ RTFParserState& operator[](size_t nIndex)
+ {
+ return m_Impl[nIndex];
}
};