@@ -2850,12 +2850,10 @@ remove_vote_account( fd_txn_account_t * vote_account,
2850
2850
fd_vote_accounts_pair_global_t_mapnode_t * epoch_vote_accounts_root = fd_vote_accounts_vote_accounts_root_join ( epoch_vote_accounts );
2851
2851
2852
2852
if ( FD_UNLIKELY ( epoch_vote_accounts_pool == NULL ) ) {
2853
- FD_LOG_DEBUG (("Vote accounts pool does not exist" ));
2854
2853
fd_bank_curr_epoch_stakes_end_locking_modify ( bank );
2855
2854
return ;
2856
2855
}
2857
2856
2858
-
2859
2857
fd_vote_accounts_pair_global_t_mapnode_t vote_acc ;
2860
2858
fd_memcpy ( vote_acc .elem .key .uc , vote_account -> pubkey -> uc , sizeof (fd_pubkey_t ) );
2861
2859
fd_vote_accounts_pair_global_t_mapnode_t * vote_account_entry = fd_vote_accounts_pair_global_t_map_find ( epoch_vote_accounts_pool , epoch_vote_accounts_root , & vote_acc );
@@ -2866,48 +2864,16 @@ remove_vote_account( fd_txn_account_t * vote_account,
2866
2864
fd_vote_accounts_vote_accounts_pool_update ( epoch_vote_accounts , epoch_vote_accounts_pool );
2867
2865
fd_vote_accounts_vote_accounts_root_update ( epoch_vote_accounts , epoch_vote_accounts_root );
2868
2866
fd_bank_curr_epoch_stakes_end_locking_modify ( bank );
2869
-
2870
- fd_account_keys_global_t * vote_account_keys = fd_bank_vote_account_keys_locking_modify ( bank );
2871
- fd_account_keys_pair_t_mapnode_t * vote_account_keys_pool = fd_account_keys_account_keys_pool_join ( vote_account_keys );
2872
- fd_account_keys_pair_t_mapnode_t * vote_account_keys_root = fd_account_keys_account_keys_root_join ( vote_account_keys );
2873
-
2874
- if ( FD_UNLIKELY ( vote_account_keys_pool == NULL ) ) {
2875
- fd_bank_vote_account_keys_end_locking_modify ( bank );
2876
- FD_LOG_DEBUG (("Vote accounts pool does not exist" ));
2877
- return ;
2878
- }
2879
-
2880
- fd_account_keys_pair_t_mapnode_t account_key ;
2881
- fd_memcpy ( account_key .elem .key .uc , vote_account -> pubkey -> uc , sizeof (fd_pubkey_t ) );
2882
- fd_account_keys_pair_t_mapnode_t * account_key_entry = fd_account_keys_pair_t_map_find ( vote_account_keys_pool , vote_account_keys_root , & account_key );
2883
- if ( account_key_entry ) {
2884
- fd_account_keys_pair_t_map_remove ( vote_account_keys_pool , & vote_account_keys_root , account_key_entry );
2885
- }
2886
-
2887
- fd_account_keys_account_keys_pool_update ( vote_account_keys , vote_account_keys_pool );
2888
-
2889
- fd_bank_vote_account_keys_end_locking_modify ( bank );
2890
2867
}
2891
2868
2892
2869
static void
2893
2870
upsert_vote_account ( fd_txn_account_t * vote_account ,
2894
2871
fd_bank_t * bank ) {
2895
2872
2896
- fd_vote_accounts_global_t const * vote_accounts = fd_bank_curr_epoch_stakes_locking_query ( bank );
2873
+ fd_vote_accounts_global_t * vote_accounts = fd_bank_curr_epoch_stakes_locking_modify ( bank );
2897
2874
fd_vote_accounts_pair_global_t_mapnode_t * stakes_vote_accounts_pool = fd_vote_accounts_vote_accounts_pool_join ( vote_accounts );
2898
2875
fd_vote_accounts_pair_global_t_mapnode_t * stakes_vote_accounts_root = fd_vote_accounts_vote_accounts_root_join ( vote_accounts );
2899
2876
2900
- fd_account_keys_global_t * vote_account_keys = fd_bank_vote_account_keys_locking_modify ( bank );
2901
- fd_account_keys_pair_t_mapnode_t * vote_account_keys_pool = fd_account_keys_account_keys_pool_join ( vote_account_keys );
2902
- fd_account_keys_pair_t_mapnode_t * vote_account_keys_root = fd_account_keys_account_keys_root_join ( vote_account_keys );
2903
-
2904
- if ( FD_UNLIKELY ( vote_account_keys_pool == NULL ) ) {
2905
- fd_bank_vote_account_keys_end_locking_modify ( bank );
2906
- fd_bank_curr_epoch_stakes_end_locking_query ( bank );
2907
- FD_LOG_DEBUG (( "Vote accounts pool does not exist" ));
2908
- return ;
2909
- }
2910
-
2911
2877
if ( fd_vote_state_versions_is_correct_and_initialized ( vote_account ) ) {
2912
2878
fd_account_keys_pair_t_mapnode_t key ;
2913
2879
fd_memcpy ( & key .elem .key , vote_account -> pubkey -> uc , sizeof (fd_pubkey_t ) );
@@ -2916,25 +2882,22 @@ upsert_vote_account( fd_txn_account_t * vote_account,
2916
2882
fd_memcpy ( & vote_acc .elem .key , vote_account -> pubkey -> uc , sizeof (fd_pubkey_t ) );
2917
2883
2918
2884
// Skip duplicates
2919
- if ( FD_LIKELY ( fd_account_keys_pair_t_map_find ( vote_account_keys_pool , vote_account_keys_root , & key ) ||
2920
- fd_vote_accounts_pair_global_t_map_find ( stakes_vote_accounts_pool , stakes_vote_accounts_root , & vote_acc ) ) ) {
2921
- fd_bank_vote_account_keys_end_locking_modify ( bank );
2922
- fd_bank_curr_epoch_stakes_end_locking_query ( bank );
2885
+ if ( FD_LIKELY ( fd_vote_accounts_pair_global_t_map_find ( stakes_vote_accounts_pool , stakes_vote_accounts_root , & vote_acc ) ) ) {
2886
+ fd_bank_curr_epoch_stakes_end_locking_modify ( bank );
2923
2887
return ;
2924
2888
}
2925
- fd_bank_curr_epoch_stakes_end_locking_query ( bank );
2926
2889
2927
- fd_account_keys_pair_t_mapnode_t * new_node = fd_account_keys_pair_t_map_acquire ( vote_account_keys_pool );
2890
+ fd_vote_accounts_pair_global_t_mapnode_t * new_node = fd_vote_accounts_pair_global_t_map_acquire ( stakes_vote_accounts_pool );
2928
2891
if ( FD_UNLIKELY ( !new_node ) ) {
2929
- FD_LOG_ERR (( "Map full" ));
2892
+ FD_LOG_CRIT (( "Map full" ));
2930
2893
}
2931
2894
2932
- fd_memcpy ( & new_node -> elem .key , vote_account -> pubkey , sizeof (fd_pubkey_t ));
2933
- fd_account_keys_pair_t_map_insert ( vote_account_keys_pool , & vote_account_keys_root , new_node );
2934
- fd_bank_vote_account_keys_end_locking_modify ( bank );
2895
+ fd_memcpy ( & new_node -> elem .key , vote_account -> pubkey , sizeof (fd_pubkey_t ) );
2896
+
2897
+ fd_vote_accounts_pair_global_t_map_insert ( stakes_vote_accounts_pool , & stakes_vote_accounts_root , new_node );
2898
+ fd_bank_curr_epoch_stakes_end_locking_modify ( bank );
2935
2899
} else {
2936
- fd_bank_vote_account_keys_end_locking_modify ( bank );
2937
- fd_bank_curr_epoch_stakes_end_locking_query ( bank );
2900
+ fd_bank_curr_epoch_stakes_end_locking_modify ( bank );
2938
2901
remove_vote_account ( vote_account , bank );
2939
2902
}
2940
2903
}
0 commit comments