Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Commit 1edaee6

Browse files
committed
do not derive Copy for Rent
1 parent 5d318b8 commit 1edaee6

File tree

9 files changed

+20
-19
lines changed

9 files changed

+20
-19
lines changed

accounts-db/src/accounts_db.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9128,7 +9128,7 @@ impl AccountsDb {
91289128
schedule.get_epoch(max_slot),
91299129
schedule.clone(),
91309130
genesis_config.slots_per_year(),
9131-
genesis_config.rent,
9131+
genesis_config.rent.clone(),
91329132
);
91339133
let accounts_data_len = AtomicU64::new(0);
91349134

genesis/src/main.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ fn main() -> Result<(), Box<dyn error::Error>> {
547547
identity_pubkey,
548548
identity_pubkey,
549549
commission,
550-
VoteState::get_rent_exempt_reserve(&rent).max(1),
550+
VoteState::get_rent_exempt_reserve(&genesis_config.rent).max(1),
551551
);
552552

553553
genesis_config.add_account(
@@ -558,7 +558,7 @@ fn main() -> Result<(), Box<dyn error::Error>> {
558558
.unwrap_or(identity_pubkey),
559559
vote_pubkey,
560560
&vote_account,
561-
&rent,
561+
&genesis_config.rent,
562562
bootstrap_validator_stake_lamports,
563563
),
564564
);

genesis/src/stakes.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ mod tests {
246246
let total_lamports = staker_reserve + reserve * 2 + 1;
247247
create_and_check_stakes(
248248
&mut GenesisConfig {
249-
rent,
249+
rent: rent.clone(),
250250
..GenesisConfig::default()
251251
},
252252
&StakerInfo {
@@ -272,7 +272,7 @@ mod tests {
272272
let total_lamports = staker_reserve + reserve * 2 + 1;
273273
create_and_check_stakes(
274274
&mut GenesisConfig {
275-
rent,
275+
rent: rent.clone(),
276276
..GenesisConfig::default()
277277
},
278278
&StakerInfo {
@@ -298,7 +298,7 @@ mod tests {
298298
let total_lamports = staker_reserve + (granularity + reserve) * 2;
299299
create_and_check_stakes(
300300
&mut GenesisConfig {
301-
rent,
301+
rent: rent.clone(),
302302
..GenesisConfig::default()
303303
},
304304
&StakerInfo {
@@ -323,7 +323,7 @@ mod tests {
323323
let total_lamports = staker_reserve + (granularity + reserve + 1) * 2;
324324
create_and_check_stakes(
325325
&mut GenesisConfig {
326-
rent,
326+
rent: rent.clone(),
327327
..GenesisConfig::default()
328328
},
329329
&StakerInfo {

programs/bpf_loader/src/syscalls/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3332,7 +3332,7 @@ mod tests {
33323332
sysvar_cache.set_clock(src_clock.clone());
33333333
sysvar_cache.set_epoch_schedule(src_epochschedule.clone());
33343334
sysvar_cache.set_fees(src_fees.clone());
3335-
sysvar_cache.set_rent(src_rent);
3335+
sysvar_cache.set_rent(src_rent.clone());
33363336
sysvar_cache.set_epoch_rewards(src_rewards);
33373337

33383338
let transaction_accounts = vec![

runtime/src/bank.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3883,7 +3883,7 @@ impl Bank {
38833883
self.epoch,
38843884
self.epoch_schedule().clone(),
38853885
self.slots_per_year,
3886-
genesis_config.rent,
3886+
genesis_config.rent.clone(),
38873887
);
38883888

38893889
// Add additional builtin programs specified in the genesis config
@@ -4811,7 +4811,7 @@ impl Bank {
48114811
.feature_set
48124812
.is_active(&enable_early_verification_of_account_modifications::id())
48134813
{
4814-
Some(self.rent_collector.rent)
4814+
Some(self.rent_collector.rent.clone())
48154815
} else {
48164816
None
48174817
},
@@ -4864,7 +4864,7 @@ impl Bank {
48644864
tx.message(),
48654865
&loaded_transaction.program_indices,
48664866
&mut transaction_context,
4867-
self.rent_collector.rent,
4867+
self.rent_collector.rent.clone(),
48684868
log_collector.clone(),
48694869
programs_loaded_for_tx_batch,
48704870
&mut programs_modified_by_tx,
@@ -5736,10 +5736,10 @@ impl Bank {
57365736
let mut account = self
57375737
.get_account_with_fixed_root(&pubkey)
57385738
.unwrap_or_default();
5739-
let rent = self.rent_collector().rent;
5740-
let recipient_pre_rent_state = RentState::from_account(&account, &rent);
5739+
let rent = &self.rent_collector().rent;
5740+
let recipient_pre_rent_state = RentState::from_account(&account, rent);
57415741
let distribution = account.checked_add_lamports(rent_to_be_paid);
5742-
let recipient_post_rent_state = RentState::from_account(&account, &rent);
5742+
let recipient_post_rent_state = RentState::from_account(&account, rent);
57435743
let rent_state_transition_allowed = recipient_post_rent_state
57445744
.transition_allowed_from(&recipient_pre_rent_state);
57455745
if !rent_state_transition_allowed {

runtime/src/bank/tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,7 +1046,7 @@ fn test_distribute_rent_to_validators_rent_paying() {
10461046
.unwrap();
10471047
}
10481048
let bank = Bank::new_for_tests(&genesis_config);
1049-
let rent = bank.rent_collector().rent;
1049+
let rent = &bank.rent_collector().rent;
10501050
let rent_exempt_minimum = rent.minimum_balance(0);
10511051

10521052
// Make one validator have an empty identity account
@@ -1084,7 +1084,7 @@ fn test_distribute_rent_to_validators_rent_paying() {
10841084
let account = bank
10851085
.get_account_with_fixed_root(address)
10861086
.unwrap_or_default();
1087-
RentState::from_account(&account, &rent)
1087+
RentState::from_account(&account, rent)
10881088
};
10891089

10901090
// Assert starting RentStates

sdk/program/src/rent.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use {crate::clock::DEFAULT_SLOTS_PER_EPOCH, solana_sdk_macro::CloneZeroed};
88

99
/// Configuration of network rent.
1010
#[repr(C)]
11-
#[derive(Serialize, Deserialize, PartialEq, CloneZeroed, Copy, Debug, AbiExample)]
11+
#[derive(Serialize, Deserialize, PartialEq, CloneZeroed, Debug, AbiExample)]
1212
pub struct Rent {
1313
/// Rental rate in lamports/byte-year.
1414
pub lamports_per_byte_year: u64,

sdk/src/transaction_context.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1034,6 +1034,7 @@ impl<'a> BorrowedAccount<'a> {
10341034
pub fn is_rent_exempt_at_data_length(&self, data_length: usize) -> bool {
10351035
self.transaction_context
10361036
.rent
1037+
.clone()
10371038
.unwrap_or_default()
10381039
.is_exempt(self.get_lamports(), data_length)
10391040
}
@@ -1047,7 +1048,7 @@ impl<'a> BorrowedAccount<'a> {
10471048
/// Configures whether this account is executable (transaction wide)
10481049
#[cfg(not(target_os = "solana"))]
10491050
pub fn set_executable(&mut self, is_executable: bool) -> Result<(), InstructionError> {
1050-
if let Some(rent) = self.transaction_context.rent {
1051+
if let Some(rent) = &self.transaction_context.rent {
10511052
// To become executable an account must be rent exempt
10521053
if !rent.is_exempt(self.get_lamports(), self.get_data().len()) {
10531054
return Err(InstructionError::ExecutableAccountNotRentExempt);

test-validator/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -777,7 +777,7 @@ impl TestValidator {
777777
validator_stake_lamports,
778778
validator_identity_lamports,
779779
config.fee_rate_governor.clone(),
780-
config.rent,
780+
config.rent.clone(),
781781
solana_sdk::genesis_config::ClusterType::Development,
782782
accounts.into_iter().collect(),
783783
);

0 commit comments

Comments
 (0)