Fix two places where objects were being used after they were deleted
This commit is contained in:
parent
2a07fba3c2
commit
7fe0e64a5e
2 changed files with 6 additions and 3 deletions
|
|
@ -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 )
|
void database::_apply_block( const signed_block& next_block )
|
||||||
{ try {
|
{ try {
|
||||||
|
uint32_t next_block_num = next_block.block_num();
|
||||||
uint32_t skip = get_node_properties().skip_flags;
|
uint32_t skip = get_node_properties().skip_flags;
|
||||||
_applied_ops.clear();
|
_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());
|
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);
|
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;
|
_current_trx_in_block = 0;
|
||||||
|
|
||||||
for( const auto& trx : next_block.transactions )
|
for( const auto& trx : next_block.transactions )
|
||||||
|
|
|
||||||
|
|
@ -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)
|
void database::cancel_order(const force_settlement_object& order, bool create_virtual_op)
|
||||||
{
|
{
|
||||||
adjust_balance(order.owner, order.balance);
|
adjust_balance(order.owner, order.balance);
|
||||||
remove(order);
|
|
||||||
|
|
||||||
if( create_virtual_op )
|
if( create_virtual_op )
|
||||||
{
|
{
|
||||||
|
|
@ -99,6 +98,7 @@ void database::cancel_order(const force_settlement_object& order, bool create_vi
|
||||||
vop.amount = order.balance;
|
vop.amount = order.balance;
|
||||||
push_applied_operation( vop );
|
push_applied_operation( vop );
|
||||||
}
|
}
|
||||||
|
remove(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
void database::cancel_order( const limit_order_object& order, bool create_virtual_op )
|
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;
|
filled = false;
|
||||||
} else {
|
} else {
|
||||||
remove(settle);
|
|
||||||
filled = true;
|
filled = true;
|
||||||
}
|
}
|
||||||
adjust_balance(settle.owner, receives - issuer_fees);
|
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 );
|
assert( pays.asset_id != receives.asset_id );
|
||||||
push_applied_operation( fill_order_operation{ settle.id, settle.owner, pays, receives, issuer_fees } );
|
push_applied_operation( fill_order_operation{ settle.id, settle.owner, pays, receives, issuer_fees } );
|
||||||
|
|
||||||
|
if (filled)
|
||||||
|
remove(settle);
|
||||||
|
|
||||||
return filled;
|
return filled;
|
||||||
} FC_CAPTURE_AND_RETHROW( (settle)(pays)(receives) ) }
|
} FC_CAPTURE_AND_RETHROW( (settle)(pays)(receives) ) }
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue