From 0fddc0df262291e25208e5233b42ad29b28cd9dd Mon Sep 17 00:00:00 2001 From: Manik Jain Date: Tue, 13 Oct 2026 19:55:48 +0000 Subject: [PATCH] conformance: build feature set once per input --- svm/src/conformance/feature_set.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/svm/src/conformance/feature_set.rs b/svm/src/conformance/feature_set.rs index 47c86b49bbb..bb27f1f1a21 100644 --- a/svm/src/conformance/feature_set.rs +++ b/svm/src/conformance/feature_set.rs @@ -2,6 +2,7 @@ use { agave_feature_set::{FEATURE_NAMES, FeatureSet}, + ahash::{AHashMap, AHashSet}, protosol::protos::FeatureSet as ProtoFeatureSet, solana_pubkey::Pubkey, std::{collections::HashMap, sync::LazyLock}, @@ -28,11 +29,13 @@ static INDEXED_FEATURES: LazyLock> = LazyLock::new(|| { /// Build a `FeatureSet` from a protobuf feature set. pub fn feature_set_from_proto(value: &ProtoFeatureSet) -> FeatureSet { - let mut feature_set = FeatureSet::default(); + let mut active = AHashMap::default(); + let mut inactive: AHashSet = FEATURE_NAMES.keys().cloned().collect(); for id in &value.features { if let Some(pubkey) = INDEXED_FEATURES.get(id) { - feature_set.activate(pubkey, 0); + inactive.remove(pubkey); + active.insert(*pubkey, 0); } } - feature_set + FeatureSet::new(active, inactive) }