Skip to content

Commit bde746a

Browse files
committed
pr feedback: use write for maybe uninit, and avoid the copy
1 parent 12e6572 commit bde746a

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

program/src/sigverify.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ impl<'a> SignatureVerification<'a> {
114114
instructions_sysvar: &'a AccountInfo<'b>,
115115
relative_index: i64,
116116
) -> Result<[SignatureVerification<'a>; NUM_VERIFICATIONS], SlashingError> {
117-
let mut verifications = [MaybeUninit::<SignatureVerification>::uninit(); NUM_VERIFICATIONS];
117+
let mut verifications =
118+
[const { MaybeUninit::<SignatureVerification>::uninit() }; NUM_VERIFICATIONS];
118119

119120
// Instruction inspection to unpack successful signature verifications
120121
let current_index = load_current_index_checked(instructions_sysvar)
@@ -179,9 +180,9 @@ impl<'a> SignatureVerification<'a> {
179180
offsets.message_data_size as usize,
180181
)?;
181182

182-
*verification =
183-
MaybeUninit::new(SignatureVerification::new(pubkey, message, signature)?);
183+
verification.write(SignatureVerification::new(pubkey, message, signature)?);
184184
}
185-
unsafe { std::mem::transmute_copy(&verifications) }
185+
// Replace with `array_assume_init` once stabilized
186+
Ok(verifications.map(|verification| unsafe { verification.assume_init() }))
186187
}
187188
}

0 commit comments

Comments
 (0)