Skip to content

Commit 56bacfb

Browse files
committed
Box ConsensusMesasage in stake::Action::ReportDoubleVote
ConsensusMessage is a large struct, therefore it bloats the enum
1 parent 8ea7134 commit 56bacfb

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

core/src/consensus/stake/actions.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ pub enum Action {
6464
},
6565
// TODO: ConsensusMessage is tied to the Tendermint
6666
ReportDoubleVote {
67-
message1: ConsensusMessage,
68-
message2: ConsensusMessage,
67+
message1: Box<ConsensusMessage>,
68+
message2: Box<ConsensusMessage>,
6969
},
7070
}
7171

@@ -239,7 +239,10 @@ impl Encodable for Action {
239239
message1,
240240
message2,
241241
} => {
242-
s.begin_list(3).append(&ACTION_TAG_REPORT_DOUBLE_VOTE).append(message1).append(message2);
242+
s.begin_list(3)
243+
.append(&ACTION_TAG_REPORT_DOUBLE_VOTE)
244+
.append(message1.as_ref())
245+
.append(message2.as_ref());
243246
}
244247
};
245248
}
@@ -340,8 +343,8 @@ impl Decodable for Action {
340343
got: item_count,
341344
})
342345
}
343-
let message1 = rlp.val_at(1)?;
344-
let message2 = rlp.val_at(2)?;
346+
let message1 = Box::new(rlp.val_at(1)?);
347+
let message2 = Box::new(rlp.val_at(2)?);
345348
Ok(Action::ReportDoubleVote {
346349
message1,
347350
message2,
@@ -449,8 +452,8 @@ mod tests {
449452
let consensus_message2 =
450453
create_consensus_message(message_info2, &test_client, vote_step_twister, block_hash_twister);
451454
let action = Action::ReportDoubleVote {
452-
message1: consensus_message1,
453-
message2: consensus_message2,
455+
message1: Box::new(consensus_message1),
456+
message2: Box::new(consensus_message2),
454457
};
455458
let arced_client: Arc<ConsensusClient> = Arc::new(test_client);
456459
validator_set.register_client(Arc::downgrade(&arced_client));

core/src/consensus/tendermint/vote_collector.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ pub struct DoubleVote {
4949
impl DoubleVote {
5050
pub fn to_action(&self) -> Action {
5151
Action::ReportDoubleVote {
52-
message1: self.vote_one.clone(),
53-
message2: self.vote_two.clone(),
52+
message1: Box::new(self.vote_one.clone()),
53+
message2: Box::new(self.vote_two.clone()),
5454
}
5555
}
5656
}

0 commit comments

Comments
 (0)