Skip to content

Commit eb10264

Browse files
committed
unique_ptr
1 parent f9a335c commit eb10264

File tree

4 files changed

+13
-12
lines changed

4 files changed

+13
-12
lines changed

src/download/download_constructor.cc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -131,20 +131,20 @@ DownloadConstructor::parse_info(const Object& b) {
131131
}
132132

133133
void
134-
DownloadConstructor::parse_tracker(const Object& b) {
134+
DownloadConstructor::parse_tracker(const std::unique_ptr<Object>& b) {
135135
const Object::list_type* announce_list = NULL;
136136

137-
if (b.has_key_list("announce-list") &&
137+
if (b->has_key_list("announce-list") &&
138138

139139
// Some torrent makers create empty/invalid 'announce-list'
140140
// entries while still having valid 'announce'.
141-
!(announce_list = &b.get_key_list("announce-list"))->empty() &&
141+
!(announce_list = &b->get_key_list("announce-list"))->empty() &&
142142
std::any_of(announce_list->begin(), announce_list->end(), std::mem_fn(&Object::is_list))) {
143143
for (const auto& group : *announce_list) {
144144
add_tracker_group(group);
145145
}
146-
} else if (b.has_key("announce")) {
147-
add_tracker_single(b.get_key("announce"), 0);
146+
} else if (b->has_key("announce")) {
147+
add_tracker_single(b->get_key("announce"), 0);
148148

149149
} else if (!manager->dht_controller()->is_valid() || m_download->info()->is_private()) {
150150
throw bencode_error("Could not find any trackers");
@@ -153,8 +153,8 @@ DownloadConstructor::parse_tracker(const Object& b) {
153153
if (manager->dht_controller()->is_valid() && !m_download->info()->is_private())
154154
m_download->main()->tracker_list()->insert_url(m_download->main()->tracker_list()->size_group(), "dht://");
155155

156-
if (manager->dht_controller()->is_valid() && b.has_key_list("nodes")) {
157-
for (const auto& node : b.get_key_list("nodes")) {
156+
if (manager->dht_controller()->is_valid() && b->has_key_list("nodes")) {
157+
for (const auto& node : b->get_key_list("nodes")) {
158158
add_dht_node(node);
159159
}
160160
}

src/download/download_constructor.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#define LIBTORRENT_PARSE_DOWNLOAD_CONSTRUCTOR_H
33

44
#include <list>
5+
#include <memory>
56

67
#include "torrent/object.h"
78

@@ -17,7 +18,7 @@ class DownloadConstructor {
1718
public:
1819
void initialize(Object& b);
1920

20-
void parse_tracker(const Object& b);
21+
void parse_tracker(const std::unique_ptr<Object>& b);
2122

2223
void set_download(DownloadWrapper* d) { m_download = d; }
2324
void set_encoding_list(const EncodingList* e) { m_encodingList = e; }

src/download/download_wrapper.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class DownloadWrapper {
4141
HashTorrent* hash_checker() { return m_hash_checker.get(); }
4242

4343
Object* bencode() { return m_bencode.get(); }
44-
void set_bencode(Object* o) { m_bencode.reset(o); }
44+
void set_bencode(std::unique_ptr<Object> o) { m_bencode = std::move(o); }
4545

4646
HashQueue* hash_queue() { return m_hash_queue; }
4747
void set_hash_queue(HashQueue* q) { m_hash_queue = q; }

src/torrent/torrent.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ encoding_list() {
156156
}
157157

158158
Download
159-
download_add(Object* object, uint32_t tracker_key) {
159+
download_add(std::unique_ptr<Object> object, uint32_t tracker_key) {
160160
auto download = std::make_unique<DownloadWrapper>();
161161

162162
DownloadConstructor ctor;
@@ -188,7 +188,7 @@ download_add(Object* object, uint32_t tracker_key) {
188188

189189
// Add trackers, etc, after setting the info hash so that log
190190
// entries look sane.
191-
ctor.parse_tracker(*object);
191+
ctor.parse_tracker(object);
192192

193193
// Default PeerConnection factory functions.
194194
download->main()->connection_list()->slot_new_connection(&createPeerConnectionDefault);
@@ -198,7 +198,7 @@ download_add(Object* object, uint32_t tracker_key) {
198198
// go in there.
199199
manager->initialize_download(download.get());
200200

201-
download->set_bencode(object);
201+
download->set_bencode(std::move(object));
202202
return Download(download.release());
203203
}
204204

0 commit comments

Comments
 (0)