Skip to content

Commit f42546a

Browse files
committed
Use clear helper on flags copy to mask off bits
1 parent 86eb6da commit f42546a

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

lightning/src/ln/channel.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ macro_rules! define_state_flags {
296296
#[allow(unused)]
297297
fn set(&mut self, flag: Self) { *self |= flag }
298298
#[allow(unused)]
299-
fn clear(&mut self, flag: Self) { *self &= !flag }
299+
fn clear(&mut self, flag: Self) -> Self { *self &= !flag; *self }
300300
}
301301

302302
$(
@@ -332,7 +332,7 @@ macro_rules! define_state_flags {
332332
#[allow(unused)]
333333
fn $set(&mut self) { self.set($flag_type::new() | $flag) }
334334
#[allow(unused)]
335-
fn $clear(&mut self) { self.clear($flag_type::new() | $flag) }
335+
fn $clear(&mut self) -> Self { self.clear($flag_type::new() | $flag) }
336336
}
337337
};
338338
($flag_type_doc: expr, FUNDED_STATE, $flag_type: ident, $flags: tt) => {
@@ -534,7 +534,7 @@ macro_rules! impl_state_flag {
534534
fn $clear(&mut self) {
535535
match self {
536536
$(
537-
ChannelState::$state(flags) => flags.$clear(),
537+
ChannelState::$state(flags) => { let _ = flags.$clear(); },
538538
)*
539539
_ => debug_assert!(false, "Attempted to clear flag on unexpected ChannelState"),
540540
}
@@ -3009,7 +3009,7 @@ impl<SP: Deref> Channel<SP> where
30093009
let mut check_reconnection = false;
30103010
match &self.context.channel_state {
30113011
ChannelState::AwaitingChannelReady(flags) => {
3012-
let flags = *flags & !FundedStateFlags::ALL;
3012+
let flags = flags.clone().clear(FundedStateFlags::ALL.into());
30133013
debug_assert!(!flags.is_set(AwaitingChannelReadyFlags::OUR_CHANNEL_READY) || !flags.is_set(AwaitingChannelReadyFlags::WAITING_FOR_BATCH));
30143014
if flags & !AwaitingChannelReadyFlags::WAITING_FOR_BATCH == AwaitingChannelReadyFlags::THEIR_CHANNEL_READY {
30153015
// If we reconnected before sending our `channel_ready` they may still resend theirs.
@@ -5124,7 +5124,7 @@ impl<SP: Deref> Channel<SP> where
51245124
if !self.is_awaiting_monitor_update() { return false; }
51255125
if matches!(
51265126
self.context.channel_state, ChannelState::AwaitingChannelReady(flags)
5127-
if (flags & !(AwaitingChannelReadyFlags::THEIR_CHANNEL_READY | FundedStateFlags::PEER_DISCONNECTED | FundedStateFlags::MONITOR_UPDATE_IN_PROGRESS | AwaitingChannelReadyFlags::WAITING_FOR_BATCH)).is_empty()
5127+
if flags.clone().clear(AwaitingChannelReadyFlags::THEIR_CHANNEL_READY | FundedStateFlags::PEER_DISCONNECTED | FundedStateFlags::MONITOR_UPDATE_IN_PROGRESS | AwaitingChannelReadyFlags::WAITING_FOR_BATCH).is_empty()
51285128
) {
51295129
// If we're not a 0conf channel, we'll be waiting on a monitor update with only
51305130
// AwaitingChannelReady set, though our peer could have sent their channel_ready.
@@ -5210,14 +5210,14 @@ impl<SP: Deref> Channel<SP> where
52105210

52115211
// Note that we don't include ChannelState::WaitingForBatch as we don't want to send
52125212
// channel_ready until the entire batch is ready.
5213-
let need_commitment_update = if matches!(self.context.channel_state, ChannelState::AwaitingChannelReady(f) if (f & !FundedStateFlags::ALL).is_empty()) {
5213+
let need_commitment_update = if matches!(self.context.channel_state, ChannelState::AwaitingChannelReady(f) if f.clone().clear(FundedStateFlags::ALL.into()).is_empty()) {
52145214
self.context.channel_state.set_our_channel_ready();
52155215
true
5216-
} else if matches!(self.context.channel_state, ChannelState::AwaitingChannelReady(f) if f & !FundedStateFlags::ALL == AwaitingChannelReadyFlags::THEIR_CHANNEL_READY) {
5216+
} else if matches!(self.context.channel_state, ChannelState::AwaitingChannelReady(f) if f.clone().clear(FundedStateFlags::ALL.into()) == AwaitingChannelReadyFlags::THEIR_CHANNEL_READY) {
52175217
self.context.channel_state = ChannelState::ChannelReady(self.context.channel_state.with_funded_state_flags_mask().into());
52185218
self.context.update_time_counter += 1;
52195219
true
5220-
} else if matches!(self.context.channel_state, ChannelState::AwaitingChannelReady(f) if f & !FundedStateFlags::ALL == AwaitingChannelReadyFlags::OUR_CHANNEL_READY) {
5220+
} else if matches!(self.context.channel_state, ChannelState::AwaitingChannelReady(f) if f.clone().clear(FundedStateFlags::ALL.into()) == AwaitingChannelReadyFlags::OUR_CHANNEL_READY) {
52215221
// We got a reorg but not enough to trigger a force close, just ignore.
52225222
false
52235223
} else {

0 commit comments

Comments
 (0)