diff options
author | 2019-03-01 07:47:51 +0100 | |
---|---|---|
committer | 2019-03-01 10:30:24 +0100 | |
commit | 17fcc38a25415059e6b20d5d9b1f8c5e4ef81333 (patch) | |
tree | 1a426e73534b706dd836e9521d0126fd9fc2bed1 /src/lib/netlist/plib/pstream.h | |
parent | 2b49e6ed112e90299811437cf14524b8ec393f07 (diff) |
netlist: memory code refactoring. (nw)
Diffstat (limited to 'src/lib/netlist/plib/pstream.h')
-rw-r--r-- | src/lib/netlist/plib/pstream.h | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/lib/netlist/plib/pstream.h b/src/lib/netlist/plib/pstream.h index ec15c0258c6..93497eb1423 100644 --- a/src/lib/netlist/plib/pstream.h +++ b/src/lib/netlist/plib/pstream.h @@ -179,18 +179,15 @@ public: pomemstream(pomemstream &&src) noexcept : postream(std::move(src)) , m_pos(src.m_pos) - , m_capacity(src.m_capacity) - , m_size(src.m_size) - , m_mem(src.m_mem) + , m_mem(std::move(src.m_mem)) { - src.m_mem = nullptr; } pomemstream &operator=(pomemstream &&src) = delete; - ~pomemstream() override; + ~pomemstream() override = default; - char *memory() const { return m_mem; } - pos_type size() const { return m_size; } + const char *memory() const { return m_mem.data(); } + pos_type size() const { return m_mem.size(); } protected: /* write n bytes to stream */ @@ -200,9 +197,7 @@ protected: private: pos_type m_pos; - pos_type m_capacity; - pos_type m_size; - char *m_mem; + std::vector<char> m_mem; }; class postringstream : public postream @@ -626,11 +621,10 @@ public: { std::size_t sz = 0; read(sz); - auto buf = plib::pnew_array<plib::string_info<pstring>::mem_t>(sz+1); - m_strm.read(reinterpret_cast<pistream::value_type *>(buf), sz); + std::vector<plib::string_info<pstring>::mem_t> buf(sz+1); + m_strm.read(buf.data(), sz); buf[sz] = 0; - s = pstring(buf); - plib::pdelete_array(buf); + s = pstring(buf.data()); } template <typename T> |