From a5850bdb914b744e903ba6b31731941899fe848c Mon Sep 17 00:00:00 2001 From: theoreticalbts Date: Fri, 21 Aug 2015 13:17:46 -0400 Subject: [PATCH] fork_database.cpp: Update is_known_block and fetch_block to also look in unlinked_index --- libraries/chain/fork_database.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/libraries/chain/fork_database.cpp b/libraries/chain/fork_database.cpp index 0fab49a3..7910b417 100644 --- a/libraries/chain/fork_database.cpp +++ b/libraries/chain/fork_database.cpp @@ -143,22 +143,30 @@ void fork_database::set_max_size( uint32_t s ) } } - - - bool fork_database::is_known_block(const block_id_type& id)const { auto& index = _index.get(); auto itr = index.find(id); - return itr != index.end(); + if( itr != index.end() ) + return true; + auto& unlinked_index = _unlinked_index.get(); + auto unlinked_itr = unlinked_index.find(id); + return unlinked_itr != unlinked_index.end(); } + item_ptr fork_database::fetch_block(const block_id_type& id)const { - auto itr = _index.get().find(id); - if( itr != _index.get().end() ) + auto& index = _index.get(); + auto itr = index.find(id); + if( itr != index.end() ) return *itr; + auto& unlinked_index = _unlinked_index.get(); + auto unlinked_itr = unlinked_index.find(id); + if( unlinked_itr != unlinked_index.end() ) + return *unlinked_itr; return item_ptr(); } + vector fork_database::fetch_block_by_number(uint32_t num)const { vector result;