Refactor - Remove parameter `feature_set` from `load_program_from_bytes()` (#33395)

Replaces parameter feature_set with delay_visibility_of_program_deployment in load_program_from_bytes().
This commit is contained in:
Alexander Meißner 2023-09-25 17:16:31 +02:00 committed by GitHub
parent def8b8fc62
commit 7ff797bcef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 8 deletions

View File

@ -27,6 +27,7 @@ use {
account::AccountSharedData,
account_utils::StateMut,
bpf_loader_upgradeable::{self, UpgradeableLoaderState},
feature_set,
pubkey::Pubkey,
slot_history::Slot,
transaction_context::{IndexOfAccount, InstructionAccount},
@ -357,7 +358,9 @@ fn load_program<'a>(
#[allow(unused_mut)]
let mut verified_executable = if is_elf {
let result = load_program_from_bytes(
&invoke_context.feature_set,
invoke_context
.feature_set
.is_active(&feature_set::delay_visibility_of_program_deployment::id()),
log_collector,
&mut load_program_metrics,
&contents,

View File

@ -35,7 +35,7 @@ use {
cap_bpf_program_instruction_accounts, delay_visibility_of_program_deployment,
enable_bpf_loader_extend_program_ix, enable_bpf_loader_set_authority_checked_ix,
enable_program_redeployment_cooldown, limit_max_instruction_trace_length,
native_programs_consume_cu, remove_bpf_loader_incorrect_program_id, FeatureSet,
native_programs_consume_cu, remove_bpf_loader_incorrect_program_id,
},
instruction::{AccountMeta, InstructionError},
loader_instruction::LoaderInstruction,
@ -67,7 +67,7 @@ pub const UPGRADEABLE_LOADER_COMPUTE_UNITS: u64 = 2_370;
#[allow(clippy::too_many_arguments)]
pub fn load_program_from_bytes(
feature_set: &FeatureSet,
delay_visibility_of_program_deployment: bool,
log_collector: Option<Rc<RefCell<LogCollector>>>,
load_program_metrics: &mut LoadProgramMetrics,
programdata: &[u8],
@ -77,7 +77,7 @@ pub fn load_program_from_bytes(
program_runtime_environment: Arc<BuiltinProgram<InvokeContext<'static>>>,
reloading: bool,
) -> Result<LoadedProgram, InstructionError> {
let effective_slot = if feature_set.is_active(&delay_visibility_of_program_deployment::id()) {
let effective_slot = if delay_visibility_of_program_deployment {
deployment_slot.saturating_add(DELAY_VISIBILITY_SLOT_OFFSET)
} else {
deployment_slot
@ -132,7 +132,7 @@ macro_rules! deploy_program {
register_syscalls_time.stop();
load_program_metrics.register_syscalls_us = register_syscalls_time.as_us();
let executor = load_program_from_bytes(
&$invoke_context.feature_set,
$invoke_context.feature_set.is_active(&delay_visibility_of_program_deployment::id()),
$invoke_context.get_log_collector(),
&mut load_program_metrics,
$new_programdata,
@ -1707,7 +1707,7 @@ pub mod test_utils {
.expect("Failed to get account key");
if let Ok(loaded_program) = load_program_from_bytes(
&FeatureSet::all_enabled(),
true,
None,
&mut load_program_metrics,
account.data(),

View File

@ -4684,7 +4684,8 @@ impl Bank {
ProgramAccountLoadResult::ProgramOfLoaderV1orV2(program_account) => {
solana_bpf_loader_program::load_program_from_bytes(
&self.feature_set,
self.feature_set
.is_active(&feature_set::delay_visibility_of_program_deployment::id()),
None,
&mut load_program_metrics,
program_account.data(),
@ -4706,7 +4707,8 @@ impl Bank {
.ok_or(InstructionError::InvalidAccountData)
.and_then(|programdata| {
solana_bpf_loader_program::load_program_from_bytes(
&self.feature_set,
self.feature_set
.is_active(&feature_set::delay_visibility_of_program_deployment::id()),
None,
&mut load_program_metrics,
programdata,