diff options
author | 2017-03-30 20:20:00 +0200 | |
---|---|---|
committer | 2017-03-30 22:06:03 +0200 | |
commit | ac13946ffbec538f5fc193843fae7dd513b9c58e (patch) | |
tree | 44ee3cdb306b6cbd214c12bd8cb46dc1e6e6fb19 /src/lib/netlist/plib/pstream.h | |
parent | ac856bc4d1d22a4be0cd8c86ec7da66761becc96 (diff) |
Change pstring to use std::string as storage container.
This removes all allocation code from pstring. const_iterator is
consequently now based on pstring::const_iterator.
Removed pstring_buffer. This was class wasn't a good idea.
Vas was right: This change did not impact runtime performance. Startup
performance (string intensive) increased. (nw)
Diffstat (limited to 'src/lib/netlist/plib/pstream.h')
-rw-r--r-- | src/lib/netlist/plib/pstream.h | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/lib/netlist/plib/pstream.h b/src/lib/netlist/plib/pstream.h index 084a15ef988..7afc329e817 100644 --- a/src/lib/netlist/plib/pstream.h +++ b/src/lib/netlist/plib/pstream.h @@ -148,19 +148,19 @@ public: postringstream() : postream(0) { } virtual ~postringstream() override; - const pstringbuffer &str() { return m_buf; } + const pstring &str() { return m_buf; } protected: /* write n bytes to stream */ virtual void vwrite(const void *buf, const pos_type n) override { - m_buf.cat(buf, n); + m_buf += pstring(static_cast<const pstring::mem_t *>(buf), n, pstring::UTF8); } virtual void vseek(const pos_type n) override { } virtual pos_type vtell() override { return m_buf.len(); } private: - pstringbuffer m_buf; + pstring m_buf; }; // ----------------------------------------------------------------------------- @@ -317,17 +317,17 @@ public: char b[4]; if (m_strm.read(&b[0], 1) != 1) return false; - const unsigned l = pstring::traits::codelen(b); + const unsigned l = pstring::traits_type::codelen(b); for (unsigned i = 1; i < l; i++) if (m_strm.read(&b[i], 1) != 1) return false; - c = pstring::traits::code(b); + c = pstring::traits_type::code(b); return true; } private: pistream &m_strm; - pstringbuffer m_linebuf; + pstring m_linebuf; }; // ----------------------------------------------------------------------------- @@ -348,7 +348,7 @@ public: void write(const pstring &text) const { - m_strm.write(text.c_str(), text.blen()); + m_strm.write(text.c_str(), text.size()); } void write(const pstring::code_t c) const @@ -391,8 +391,8 @@ public: void write(const pstring &s) { - write(s.blen()); - m_strm.write(s.c_str(), s.blen()); + write(s.size()); + m_strm.write(s.c_str(), s.size()); } template <typename T> |