diff --git a/libraries/chain/db_update.cpp b/libraries/chain/db_update.cpp index 9e52b933ed..100c4b8a3a 100644 --- a/libraries/chain/db_update.cpp +++ b/libraries/chain/db_update.cpp @@ -39,6 +39,8 @@ #include +#include + namespace graphene { namespace chain { void database::update_global_dynamic_data( const signed_block& b, const uint32_t missed_blocks ) @@ -63,9 +65,16 @@ void database::update_global_dynamic_data( const signed_block& b, const uint32_t dgp.head_block_id = b.id(); dgp.time = b.timestamp; dgp.current_witness = b.witness; - dgp.recent_slots_filled = ( - (dgp.recent_slots_filled << 1) - + 1) << missed_blocks; + + if (missed_blocks >= 128) { // we must avoid calculating bitshift (A<