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,13 +1528,11 @@ 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;
{ // fixme! this might be slow on some systems.
int count = 0; 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)
{ {