Fix two places where objects were being used after they were deleted

This commit is contained in:
Eric Frias 2015-10-09 11:42:56 -04:00
parent 2a07fba3c2
commit 7fe0e64a5e
2 changed files with 6 additions and 3 deletions

View file

@ -458,6 +458,7 @@ void database::apply_block( const signed_block& next_block, uint32_t skip )
void database::_apply_block( const signed_block& next_block )
{ try {
uint32_t next_block_num = next_block.block_num();
uint32_t skip = get_node_properties().skip_flags;
_applied_ops.clear();
@ -468,7 +469,7 @@ void database::_apply_block( const signed_block& next_block )
const auto& dynamic_global_props = get<dynamic_global_property_object>(dynamic_global_property_id_type());
bool maint_needed = (dynamic_global_props.next_maintenance_time <= next_block.timestamp);
_current_block_num = next_block.block_num();
_current_block_num = next_block_num;
_current_trx_in_block = 0;
for( const auto& trx : next_block.transactions )

View file

@ -89,7 +89,6 @@ void database::globally_settle_asset( const asset_object& mia, const price& sett
void database::cancel_order(const force_settlement_object& order, bool create_virtual_op)
{
adjust_balance(order.owner, order.balance);
remove(order);
if( create_virtual_op )
{
@ -99,6 +98,7 @@ void database::cancel_order(const force_settlement_object& order, bool create_vi
vop.amount = order.balance;
push_applied_operation( vop );
}
remove(order);
}
void database::cancel_order( const limit_order_object& order, bool create_virtual_op )
@ -361,7 +361,6 @@ bool database::fill_order(const force_settlement_object& settle, const asset& pa
});
filled = false;
} else {
remove(settle);
filled = true;
}
adjust_balance(settle.owner, receives - issuer_fees);
@ -369,6 +368,9 @@ bool database::fill_order(const force_settlement_object& settle, const asset& pa
assert( pays.asset_id != receives.asset_id );
push_applied_operation( fill_order_operation{ settle.id, settle.owner, pays, receives, issuer_fees } );
if (filled)
remove(settle);
return filled;
} FC_CAPTURE_AND_RETHROW( (settle)(pays)(receives) ) }