Fixed error when account_history_object with id 0 doesnt exist

This commit is contained in:
Peter Conrad 2017-09-13 19:56:26 +02:00 committed by gladcow
parent e80e9dd401
commit 14b0d08d5a

View file

@ -555,18 +555,28 @@ namespace graphene { namespace app {
FC_ASSERT( limit <= 100 );
vector<operation_history_object> result;
const auto& stats = account(db).statistics(db);
if( stats.most_recent_op == account_transaction_history_id_type() ) return result;
const account_transaction_history_object* node = &stats.most_recent_op(db);
if( start == operation_history_id_type() )
start = node->operation_id;
while(node && node->operation_id.instance.value > stop.instance.value && result.size() < limit)
const account_transaction_history_object* node = nullptr;
if( stats.most_recent_op != account_transaction_history_id_type() )
{
if( node->operation_id.instance.value <= start.instance.value )
node = &stats.most_recent_op(db);
if( start == operation_history_id_type() )
start = node->operation_id;
while(node && node->operation_id.instance.value > stop.instance.value && result.size() < limit)
{
if( node->operation_id.instance.value <= start.instance.value )
result.push_back( node->operation_id(db) );
if( node->next == account_transaction_history_id_type() )
node = nullptr;
else node = &node->next(db);
}
}
if( stop.instance.value == 0 && result.size() < limit )
{
node = db.find(account_transaction_history_id_type());
if( node && node->operation_id.instance.value == account.instance.value)
result.push_back( node->operation_id(db) );
if( node->next == account_transaction_history_id_type() )
node = nullptr;
else node = &node->next(db);
}
return result;