Update db_bdb.cpp

- bugfix: prevent re-entering db->get when current buffer contains all possible index values.
This commit is contained in:
NoodleDoodleNoodleDoodleNoodleDoodleNoo 2015-05-11 14:02:53 -07:00 committed by NoodleDoodleNoodleDoodleNoodleDoodleNoo
parent dbbc457836
commit 3381fd69a8

View File

@ -1528,14 +1528,12 @@ void BlockchainBDB::get_output_tx_and_index(const uint64_t& amount,
{ {
cur->get(&k, &data, DB_MULTIPLE | (curcount == 0 ? DB_SET : DB_NEXT_DUP)); cur->get(&k, &data, DB_MULTIPLE | (curcount == 0 ? DB_SET : DB_NEXT_DUP));
blockstart = curcount; blockstart = curcount;
// skip counting if using single buffer, it actually adds some overhead on some systems.
if(!singlebuff)
{
int count = 0; int count = 0;
// fixme! this might be slow on some systems.
DB_COUNT_RECORDS((DBT *) &data, count); DB_COUNT_RECORDS((DBT *) &data, count);
curcount += count; curcount += count;
} }
}
catch (const std::exception &e) catch (const std::exception &e)
{ {
LOG_PRINT_L0("DB_EXCEPTION: " << e.what()); LOG_PRINT_L0("DB_EXCEPTION: " << e.what());