From 57e7f14024d00ea597012e6570565cc137bf8a58 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Mon, 7 Nov 2011 04:31:48 +0000 Subject: [PATCH] fixed rare piece picker bug --- ChangeLog | 1 + src/piece_picker.cpp | 12 +++--------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9d0dff85a..a99ae3390 100644 --- a/ChangeLog +++ b/ChangeLog @@ -94,6 +94,7 @@ incoming connection * added more detailed instrumentation of the disk I/O thread + * fixed rare piece picker bug * fixed invalid torrent_status::finished_time * fixed bugs in dont-have and upload-only extension messages * don't open files in random-access mode (speeds up hashing) diff --git a/src/piece_picker.cpp b/src/piece_picker.cpp index 8fd967ae8..d8a83995d 100644 --- a/src/piece_picker.cpp +++ b/src/piece_picker.cpp @@ -833,14 +833,8 @@ namespace libtorrent if (new_priority == prev_priority) return; if (m_dirty) return; - if (prev_priority == -1) - { - add(index); - } - else - { - update(prev_priority, p.index); - } + if (prev_priority == -1) add(index); + else update(prev_priority, p.index); } void piece_picker::inc_refcount_all() @@ -2252,7 +2246,7 @@ namespace libtorrent if (m_dirty) return; if (new_priority == prev_priority) return; - if (prev_priority == -1) add(p.index); + if (prev_priority == -1) add(block.piece_index); else update(prev_priority, p.index); } else