diff --git a/include/libtorrent/disk_buffer_holder.hpp b/include/libtorrent/disk_buffer_holder.hpp index e3510a8c0..239a67799 100644 --- a/include/libtorrent/disk_buffer_holder.hpp +++ b/include/libtorrent/disk_buffer_holder.hpp @@ -66,10 +66,10 @@ namespace libtorrent struct TORRENT_EXTRA_EXPORT disk_buffer_holder { // internal - disk_buffer_holder(buffer_allocator_interface& alloc, char* buf); + disk_buffer_holder(buffer_allocator_interface& alloc, char* buf) noexcept; - disk_buffer_holder& operator=(disk_buffer_holder&&); - disk_buffer_holder(disk_buffer_holder&&); + disk_buffer_holder& operator=(disk_buffer_holder&&) noexcept; + disk_buffer_holder(disk_buffer_holder&&) noexcept; disk_buffer_holder& operator=(disk_buffer_holder const&) = delete; disk_buffer_holder(disk_buffer_holder const&) = delete; @@ -77,7 +77,7 @@ namespace libtorrent // construct a buffer holder that will free the held buffer // using a disk buffer pool directly (there's only one // disk_buffer_pool per session) - disk_buffer_holder(buffer_allocator_interface& alloc, disk_io_job const& j); + disk_buffer_holder(buffer_allocator_interface& alloc, disk_io_job const& j) noexcept; // frees any unreleased disk buffer held by this object ~disk_buffer_holder(); @@ -85,10 +85,10 @@ namespace libtorrent // return the held disk buffer and clear it from the // holder. The responsibility to free it is passed on // to the caller - char* release(); + char* release() noexcept; // return a pointer to the held buffer - char* get() const { return m_buf; } + char* get() const noexcept { return m_buf; } // set the holder object to hold the specified buffer // (or nullptr by default). If it's already holding a @@ -97,18 +97,18 @@ namespace libtorrent void reset(disk_io_job const& j); // swap pointers of two disk buffer holders. - void swap(disk_buffer_holder& h) + void swap(disk_buffer_holder& h) noexcept { TORRENT_ASSERT(h.m_allocator == m_allocator); std::swap(h.m_buf, m_buf); std::swap(h.m_ref, m_ref); } - block_cache_reference ref() const { return m_ref; } + block_cache_reference ref() const noexcept { return m_ref; } // implicitly convertible to true if the object is currently holding a // buffer - explicit operator bool() const { return m_buf != nullptr; } + explicit operator bool() const noexcept { return m_buf != nullptr; } private: diff --git a/include/libtorrent/tailqueue.hpp b/include/libtorrent/tailqueue.hpp index 9ecefa0c2..41bc89cfd 100644 --- a/include/libtorrent/tailqueue.hpp +++ b/include/libtorrent/tailqueue.hpp @@ -40,7 +40,7 @@ namespace libtorrent template struct tailqueue_node { - tailqueue_node() : next(0) {} + tailqueue_node() : next(nullptr) {} T* next; }; @@ -81,12 +81,12 @@ namespace libtorrent void append(tailqueue& rhs) { - TORRENT_ASSERT(m_last == 0 || m_last->next == 0); - TORRENT_ASSERT(rhs.m_last == 0 || rhs.m_last->next == 0); + TORRENT_ASSERT(m_last == nullptr || m_last->next == nullptr); + TORRENT_ASSERT(rhs.m_last == nullptr || rhs.m_last->next == nullptr); - if (rhs.m_first == 0) return; + if (rhs.m_first == nullptr) return; - if (m_first == 0) + if (m_first == nullptr) { swap(rhs); return; @@ -95,21 +95,23 @@ namespace libtorrent m_last->next = rhs.m_first; m_last = rhs.m_last; m_size += rhs.m_size; - rhs.m_first = 0; - rhs.m_last = 0; + rhs.m_first = nullptr; + rhs.m_last = nullptr; rhs.m_size = 0; - TORRENT_ASSERT(m_last == 0 || m_last->next == 0); + TORRENT_ASSERT(m_last == nullptr || m_last->next == nullptr); } void prepend(tailqueue& rhs) { - TORRENT_ASSERT(m_last == 0 || m_last->next == 0); - TORRENT_ASSERT(rhs.m_last == 0 || rhs.m_last->next == 0); + TORRENT_ASSERT(m_last == nullptr || m_last->next == nullptr); + TORRENT_ASSERT(rhs.m_last == nullptr || rhs.m_last->next == nullptr); + TORRENT_ASSERT((m_last == nullptr) == (m_first == nullptr)); + TORRENT_ASSERT((rhs.m_last == nullptr) == (rhs.m_first == nullptr)); - if (rhs.m_first == 0) return; + if (rhs.m_first == nullptr) return; - if (m_first == 0) + if (m_first == nullptr) { swap(rhs); return; @@ -117,22 +119,24 @@ namespace libtorrent swap(rhs); append(rhs); + TORRENT_ASSERT(m_last == nullptr || m_last->next == nullptr); + TORRENT_ASSERT(rhs.m_last == nullptr || rhs.m_last->next == nullptr); } T* pop_front() { - TORRENT_ASSERT(m_last == 0 || m_last->next == 0); + TORRENT_ASSERT(m_last == nullptr || m_last->next == nullptr); T* e = m_first; m_first = m_first->next; - if (e == m_last) m_last = 0; - e->next = 0; + if (e == m_last) m_last = nullptr; + e->next = nullptr; --m_size; return e; } void push_front(T* e) { - TORRENT_ASSERT(e->next == 0); - TORRENT_ASSERT(m_last == 0 || m_last->next == 0); + TORRENT_ASSERT(e->next == nullptr); + TORRENT_ASSERT(m_last == nullptr || m_last->next == nullptr); e->next = m_first; m_first = e; if (!m_last) m_last = e; @@ -140,20 +144,20 @@ namespace libtorrent } void push_back(T* e) { - TORRENT_ASSERT(e->next == 0); - TORRENT_ASSERT(m_last == 0 || m_last->next == 0); + TORRENT_ASSERT(e->next == nullptr); + TORRENT_ASSERT(m_last == nullptr || m_last->next == nullptr); if (m_last) m_last->next = e; else m_first = e; m_last = e; - e->next = 0; + e->next = nullptr; ++m_size; } T* get_all() { - TORRENT_ASSERT(m_last == 0 || m_last->next == 0); + TORRENT_ASSERT(m_last == nullptr || m_last->next == nullptr); T* e = m_first; - m_first = 0; - m_last = 0; + m_first = nullptr; + m_last = nullptr; m_size = 0; return e; } diff --git a/simulation/test_checking.cpp b/simulation/test_checking.cpp index a44b853e3..b7068b3c9 100644 --- a/simulation/test_checking.cpp +++ b/simulation/test_checking.cpp @@ -84,7 +84,7 @@ TORRENT_TEST(cache_after_checking) p.set_int(lt::settings_pack::cache_size, 100); }, [](lt::session& ses) { - int cache = get_cache_size(ses); + int const cache = get_cache_size(ses); TEST_CHECK(cache > 0); std::vector tor = ses.get_torrents(); @@ -102,7 +102,7 @@ TORRENT_TEST(checking_no_cache) p.set_int(lt::settings_pack::cache_size, 0); }, [](lt::session& ses) { - int cache = get_cache_size(ses); + int const cache = get_cache_size(ses); TEST_EQUAL(cache, 0); std::vector tor = ses.get_torrents(); @@ -121,7 +121,7 @@ TORRENT_TEST(checking_limit_volatile) p.set_int(lt::settings_pack::cache_size_volatile, 2); }, [](lt::session& ses) { - int cache = get_cache_size(ses); + int const cache = get_cache_size(ses); // the cache fits 300 blocks, but only allows two volatile blocks TEST_EQUAL(cache, 2); @@ -141,7 +141,7 @@ TORRENT_TEST(checking_volatile_limit_cache_size) p.set_int(lt::settings_pack::cache_size_volatile, 300); }, [](lt::session& ses) { - int cache = get_cache_size(ses); + int const cache = get_cache_size(ses); // the cache allows 300 volatile blocks, but only fits 2 blocks TEST_CHECK(cache > 0); TEST_CHECK(cache <= 10); diff --git a/src/disk_buffer_holder.cpp b/src/disk_buffer_holder.cpp index 4716363cf..2ffdee5e3 100644 --- a/src/disk_buffer_holder.cpp +++ b/src/disk_buffer_holder.cpp @@ -36,7 +36,7 @@ POSSIBILITY OF SUCH DAMAGE. namespace libtorrent { - disk_buffer_holder::disk_buffer_holder(buffer_allocator_interface& alloc, char* buf) + disk_buffer_holder::disk_buffer_holder(buffer_allocator_interface& alloc, char* buf) noexcept : m_allocator(&alloc), m_buf(buf) { m_ref.storage = nullptr; @@ -44,20 +44,20 @@ namespace libtorrent m_ref.block = -1; } - disk_buffer_holder& disk_buffer_holder::operator=(disk_buffer_holder&& h) + disk_buffer_holder& disk_buffer_holder::operator=(disk_buffer_holder&& h) noexcept { disk_buffer_holder(std::move(h)).swap(*this); return *this; } - disk_buffer_holder::disk_buffer_holder(disk_buffer_holder&& h) + disk_buffer_holder::disk_buffer_holder(disk_buffer_holder&& h) noexcept : m_allocator(h.m_allocator), m_buf(h.m_buf), m_ref(h.m_ref) { // we own this buffer now h.release(); } - disk_buffer_holder::disk_buffer_holder(buffer_allocator_interface& alloc, disk_io_job const& j) + disk_buffer_holder::disk_buffer_holder(buffer_allocator_interface& alloc, disk_io_job const& j) noexcept : m_allocator(&alloc), m_buf(j.buffer.disk_block), m_ref(j.d.io.ref) { TORRENT_ASSERT(m_ref.storage == nullptr || m_ref.piece >= 0); @@ -94,7 +94,7 @@ namespace libtorrent m_ref.storage = nullptr; } - char* disk_buffer_holder::release() + char* disk_buffer_holder::release() noexcept { char* ret = m_buf; m_buf = nullptr; diff --git a/src/peer_connection.cpp b/src/peer_connection.cpp index e6b3e6284..d07ad2a8a 100644 --- a/src/peer_connection.cpp +++ b/src/peer_connection.cpp @@ -2748,11 +2748,11 @@ namespace libtorrent // if the block we got is already finished, then ignore it if (picker.is_downloaded(block_finished)) { - waste_reason reason; - if (b->timed_out) reason = waste_reason::piece_timed_out; - else if (b->not_wanted) reason = waste_reason::piece_cancelled; - else if (b->busy) reason = waste_reason::piece_end_game; - else reason = waste_reason::piece_unknown; + waste_reason const reason + = (b->timed_out) ? waste_reason::piece_timed_out + : (b->not_wanted) ? waste_reason::piece_cancelled + : (b->busy) ? waste_reason::piece_end_game + : waste_reason::piece_unknown; t->add_redundant_bytes(p.length, reason);