General cleanup (Part 2) (#32998)

* bucket-map: remove unused `mut`

* remove unnecessary explicit `into_iter()` calls

* don't default-construct unit-structs

* prefer `or_default()` to `or_insert_with(T::default())`

* replace "slow zero-filled vec initialization"

---------

Co-authored-by: Trent Nelson <trent@solana.com>
This commit is contained in:
Alexander Meißner 2023-08-25 19:07:38 +02:00 committed by GitHub
parent 9070d780a3
commit 29bbda0c11
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 32 additions and 31 deletions

View File

@ -183,7 +183,7 @@ impl<'b, T: Clone + Copy + 'static> Bucket<T> {
/// if entry does not exist, return just the index of an empty entry appropriate for this key
/// returns (existing entry, index of the found or empty entry)
fn find_index_entry_mut(
index: &mut BucketStorage<IndexBucket<T>>,
index: &BucketStorage<IndexBucket<T>>,
key: &Pubkey,
random: u64,
) -> Result<(Option<IndexEntryPlaceInBucket<T>>, u64), BucketMapError> {
@ -410,7 +410,7 @@ impl<'b, T: Clone + Copy + 'static> Bucket<T> {
return Err(BucketMapError::DataNoSpace((best_fit_bucket, 0)));
}
let max_search = self.index.max_search();
let (elem, elem_ix) = Self::find_index_entry_mut(&mut self.index, key, self.random)?;
let (elem, elem_ix) = Self::find_index_entry_mut(&self.index, key, self.random)?;
let elem = if let Some(elem) = elem {
elem
} else {

View File

@ -443,7 +443,7 @@ impl LoadedPrograms {
key: Pubkey,
entry: Arc<LoadedProgram>,
) -> (bool, Arc<LoadedProgram>) {
let second_level = self.entries.entry(key).or_insert_with(Vec::new);
let second_level = self.entries.entry(key).or_default();
let index = second_level
.iter()
.position(|at| at.effective_slot >= entry.effective_slot);

View File

@ -621,8 +621,7 @@ mod tests {
fn create_default_recent_blockhashes_account() -> AccountSharedData {
#[allow(deprecated)]
recent_blockhashes_account::create_account_with_data_for_test(
vec![IterItem(0u64, &Hash::default(), 0); sysvar::recent_blockhashes::MAX_ENTRIES]
.into_iter(),
vec![IterItem(0u64, &Hash::default(), 0); sysvar::recent_blockhashes::MAX_ENTRIES],
)
}
fn create_default_rent_account() -> AccountSharedData {
@ -1577,8 +1576,7 @@ mod tests {
#[allow(deprecated)]
let new_recent_blockhashes_account =
solana_sdk::recent_blockhashes_account::create_account_with_data_for_test(
vec![IterItem(0u64, &blockhash, 0); sysvar::recent_blockhashes::MAX_ENTRIES]
.into_iter(),
vec![IterItem(0u64, &blockhash, 0); sysvar::recent_blockhashes::MAX_ENTRIES],
);
mock_process_instruction(
&system_program::id(),
@ -1863,9 +1861,7 @@ mod tests {
let blockhash_id = sysvar::recent_blockhashes::id();
#[allow(deprecated)]
let new_recent_blockhashes_account =
solana_sdk::recent_blockhashes_account::create_account_with_data_for_test(
vec![].into_iter(),
);
solana_sdk::recent_blockhashes_account::create_account_with_data_for_test(vec![]);
process_instruction(
&serialize(&SystemInstruction::InitializeNonceAccount(nonce_address)).unwrap(),
vec![
@ -1928,9 +1924,7 @@ mod tests {
);
#[allow(deprecated)]
let new_recent_blockhashes_account =
solana_sdk::recent_blockhashes_account::create_account_with_data_for_test(
vec![].into_iter(),
);
solana_sdk::recent_blockhashes_account::create_account_with_data_for_test(vec![]);
mock_process_instruction(
&system_program::id(),
Vec::new(),

View File

@ -516,7 +516,7 @@ where
(SerializableBankAndStorage::<newer::Context> {
bank,
snapshot_storages: storage,
phantom: std::marker::PhantomData::default(),
phantom: std::marker::PhantomData,
})
.serialize(s)
}

View File

@ -97,7 +97,7 @@ mod tests {
#[test]
fn test_create_account_empty() {
let account = create_account_with_data_for_test(vec![].into_iter());
let account = create_account_with_data_for_test(vec![]);
let recent_blockhashes = from_account::<RecentBlockhashes, _>(&account).unwrap();
assert_eq!(recent_blockhashes, RecentBlockhashes::default());
}
@ -106,9 +106,14 @@ mod tests {
fn test_create_account_full() {
let def_hash = Hash::default();
let def_lamports_per_signature = 0;
let account = create_account_with_data_for_test(
vec![IterItem(0u64, &def_hash, def_lamports_per_signature); MAX_ENTRIES].into_iter(),
);
let account = create_account_with_data_for_test(vec![
IterItem(
0u64,
&def_hash,
def_lamports_per_signature
);
MAX_ENTRIES
]);
let recent_blockhashes = from_account::<RecentBlockhashes, _>(&account).unwrap();
assert_eq!(recent_blockhashes.len(), MAX_ENTRIES);
}
@ -117,10 +122,14 @@ mod tests {
fn test_create_account_truncate() {
let def_hash = Hash::default();
let def_lamports_per_signature = 0;
let account = create_account_with_data_for_test(
vec![IterItem(0u64, &def_hash, def_lamports_per_signature); MAX_ENTRIES + 1]
.into_iter(),
);
let account = create_account_with_data_for_test(vec![
IterItem(
0u64,
&def_hash,
def_lamports_per_signature
);
MAX_ENTRIES + 1
]);
let recent_blockhashes = from_account::<RecentBlockhashes, _>(&account).unwrap();
assert_eq!(recent_blockhashes.len(), MAX_ENTRIES);
}

View File

@ -860,15 +860,13 @@ pub fn new_secp256k1_instruction(
let signature_arr = signature.serialize();
assert_eq!(signature_arr.len(), SIGNATURE_SERIALIZED_SIZE);
let mut instruction_data = vec![];
instruction_data.resize(
DATA_START
.saturating_add(eth_pubkey.len())
.saturating_add(signature_arr.len())
.saturating_add(message_arr.len())
.saturating_add(1),
0,
);
let instruction_data_len = DATA_START
.saturating_add(eth_pubkey.len())
.saturating_add(signature_arr.len())
.saturating_add(message_arr.len())
.saturating_add(1);
let mut instruction_data = vec![0; instruction_data_len];
let eth_address_offset = DATA_START;
instruction_data[eth_address_offset..eth_address_offset.saturating_add(eth_pubkey.len())]
.copy_from_slice(&eth_pubkey);