diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2014-07-02 21:14:01 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2014-07-05 12:10:06 +0100 |
| commit | ed68d1ff287d43c5293abb4d41e908aa8e50afec (patch) | |
| tree | b5ab042ba67259a63b2aa0ae99ad74a5bc646a7f /src/utf8_iterator.hh | |
| parent | 3f70d91f8c716ef2dbc76abb9c878f86ecb946f7 (diff) | |
utf8: use end of sequence iterators for more security
Diffstat (limited to 'src/utf8_iterator.hh')
| -rw-r--r-- | src/utf8_iterator.hh | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/utf8_iterator.hh b/src/utf8_iterator.hh index c7ea102f..d2d8fa6a 100644 --- a/src/utf8_iterator.hh +++ b/src/utf8_iterator.hh @@ -12,7 +12,7 @@ namespace utf8 // adapter for an iterator on bytes which permits to iterate // on unicode codepoints instead. template<typename Iterator, - typename InvalidPolicy = InvalidBytePolicy::Assert> + typename InvalidPolicy = utf8::InvalidPolicy::Assert> class iterator { public: @@ -21,7 +21,7 @@ public: iterator& operator++() { - m_it = utf8::next(m_it); + m_it = utf8::next(m_it, Iterator{}); invalidate_value(); return *this; } @@ -41,7 +41,7 @@ public: iterator& operator--() { - m_it = utf8::previous(m_it); + m_it = utf8::previous(m_it, Iterator{}); invalidate_value(); return *this; } @@ -132,7 +132,7 @@ private: Codepoint get_value() const { if (m_value == -1) - m_value = utf8::codepoint<InvalidPolicy>(m_it); + m_value = utf8::codepoint<InvalidPolicy>(m_it, Iterator{}); return m_value; } @@ -140,7 +140,7 @@ private: mutable Codepoint m_value = -1; }; -template<typename InvalidPolicy = InvalidBytePolicy::Assert, typename Iterator> +template<typename InvalidPolicy = utf8::InvalidPolicy::Assert, typename Iterator> iterator<Iterator, InvalidPolicy> make_iterator(Iterator it) { return iterator<Iterator, InvalidPolicy>{std::move(it)}; |
