diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-07-11 21:09:51 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-07-11 21:09:51 +0900 |
| commit | 7c06b903f3493db95fcf4bd42cccc59e3b4d0692 (patch) | |
| tree | f10a85795bb086e0b257a0e6c6c5ffb05f28f344 /src/bencode2.cc | |
| parent | 7a57ecc5f814dc305e5e4b9bd960d69b43870c0e (diff) | |
Use std::unique_ptr for ValueBase object hierarchy
Diffstat (limited to 'src/bencode2.cc')
| -rw-r--r-- | src/bencode2.cc | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/bencode2.cc b/src/bencode2.cc index 81b14403..8c3dab16 100644 --- a/src/bencode2.cc +++ b/src/bencode2.cc @@ -47,25 +47,25 @@ namespace aria2 { namespace bencode2 { -std::shared_ptr<ValueBase> decode(const unsigned char* data, size_t len) +std::unique_ptr<ValueBase> decode(const unsigned char* data, size_t len) { size_t end; return decode(data, len, end); } -std::shared_ptr<ValueBase> decode(const std::string& data) +std::unique_ptr<ValueBase> decode(const std::string& data) { size_t end; return decode(reinterpret_cast<const unsigned char*>(data.c_str()), data.size(), end); } -std::shared_ptr<ValueBase> decode(const unsigned char* data, size_t len, - size_t& end) +std::unique_ptr<ValueBase> decode(const unsigned char* data, size_t len, + size_t& end) { ssize_t error; bittorrent::ValueBaseBencodeParser parser; - std::shared_ptr<ValueBase> res = + auto res = parser.parseFinal(reinterpret_cast<const char*>(data), len, error); if(error < 0) { throw DL_ABORT_EX2(fmt("Bencode decoding failed: error=%d", @@ -130,11 +130,6 @@ std::string encode(const ValueBase* vlb) return visitor.getResult(); } -std::string encode(const std::shared_ptr<ValueBase>& vlb) -{ - return encode(vlb.get()); -} - } // namespace bencode2 } // namespace aria2 |
