From bde746ab1825b349f1d1a26adf44994785b44c41 Mon Sep 17 00:00:00 2001 From: Ashwin Sekar Date: Tue, 28 Jan 2025 17:45:31 +0000 Subject: [PATCH] pr feedback: use write for maybe uninit, and avoid the copy --- program/src/sigverify.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/program/src/sigverify.rs b/program/src/sigverify.rs index 02e652a..f6c033d 100644 --- a/program/src/sigverify.rs +++ b/program/src/sigverify.rs @@ -114,7 +114,8 @@ impl<'a> SignatureVerification<'a> { instructions_sysvar: &'a AccountInfo<'b>, relative_index: i64, ) -> Result<[SignatureVerification<'a>; NUM_VERIFICATIONS], SlashingError> { - let mut verifications = [MaybeUninit::::uninit(); NUM_VERIFICATIONS]; + let mut verifications = + [const { MaybeUninit::::uninit() }; NUM_VERIFICATIONS]; // Instruction inspection to unpack successful signature verifications let current_index = load_current_index_checked(instructions_sysvar) @@ -179,9 +180,9 @@ impl<'a> SignatureVerification<'a> { offsets.message_data_size as usize, )?; - *verification = - MaybeUninit::new(SignatureVerification::new(pubkey, message, signature)?); + verification.write(SignatureVerification::new(pubkey, message, signature)?); } - unsafe { std::mem::transmute_copy(&verifications) } + // Replace with `array_assume_init` once stabilized + Ok(verifications.map(|verification| unsafe { verification.assume_init() })) } }