@@ -81,22 +81,29 @@ fd_solfuzz_pb_instr_ctx_create( fd_solfuzz_runner_t * runner,
8181
8282 uchar * progcache_scratch = fd_spad_alloc_check ( runner -> spad , FD_PROGCACHE_SCRATCH_ALIGN , FD_PROGCACHE_SCRATCH_FOOTPRINT );
8383
84- fd_exec_txn_ctx_setup ( runner -> bank ,
85- runner -> accdb -> funk -> shmem ,
86- runner -> progcache -> funk -> shmem ,
87- xid ,
88- NULL ,
89- txn_ctx ,
90- NULL ,
91- progcache_scratch ,
92- FD_PROGCACHE_SCRATCH_FOOTPRINT );
84+ if ( FD_UNLIKELY ( !fd_funk_join ( txn_ctx -> funk , runner -> accdb -> funk -> shmem ) ) ) {
85+ FD_LOG_CRIT (( "fd_funk_join(accdb) failed" ));
86+ }
87+
88+ if ( runner -> progcache -> funk -> shmem ) {
89+ txn_ctx -> progcache = fd_progcache_join ( txn_ctx -> _progcache , runner -> progcache -> funk -> shmem , progcache_scratch , FD_PROGCACHE_SCRATCH_FOOTPRINT );
90+ if ( FD_UNLIKELY ( !txn_ctx -> progcache ) ) {
91+ FD_LOG_CRIT (( "fd_progcache_join() failed" ));
92+ }
93+ }
94+
95+ txn_ctx -> xid [0 ] = * xid ;
96+ txn_ctx -> status_cache = NULL ;
97+ txn_ctx -> bank_hash_cmp = NULL ;
98+ txn_ctx -> log .enable_exec_recording = !!( runner -> bank -> flags & FD_BANK_FLAGS_EXEC_RECORDING );
99+ txn_ctx -> bank = runner -> bank ;
93100
94101 fd_compute_budget_details_new ( & txn_ctx -> details .compute_budget );
95102 txn_ctx -> instr .stack_sz = 0 ;
96103 txn_ctx -> accounts .accounts_cnt = 0UL ;
97104 txn_ctx -> accounts .executable_cnt = 0UL ;
98- txn_ctx -> prog_cache .programs_to_reverify_cnt = 0UL ;
99105
106+ txn_ctx -> details .programs_to_reverify_cnt = 0UL ;
100107 txn_ctx -> details .loaded_accounts_data_size = 0UL ;
101108 txn_ctx -> details .loaded_accounts_data_size_cost = 0UL ;
102109 txn_ctx -> details .accounts_resize_delta = 0UL ;
@@ -334,16 +341,22 @@ fd_solfuzz_pb_instr_ctx_create( fd_solfuzz_runner_t * runner,
334341
335342 ctx -> instr = info ;
336343
337- /* Refresh the setup from the updated slot and epoch ctx. */
338- fd_exec_txn_ctx_setup ( runner -> bank ,
339- runner -> accdb -> funk -> shmem ,
340- runner -> progcache -> funk -> shmem ,
341- xid ,
342- NULL ,
343- txn_ctx ,
344- NULL ,
345- progcache_scratch ,
346- FD_PROGCACHE_SCRATCH_FOOTPRINT );
344+ if ( FD_UNLIKELY ( !fd_funk_join ( txn_ctx -> funk , runner -> accdb -> funk -> shmem ) ) ) {
345+ FD_LOG_CRIT (( "fd_funk_join(accdb) failed" ));
346+ }
347+
348+ if ( runner -> progcache -> funk -> shmem ) {
349+ txn_ctx -> progcache = fd_progcache_join ( txn_ctx -> _progcache , runner -> progcache -> funk -> shmem , progcache_scratch , FD_PROGCACHE_SCRATCH_FOOTPRINT );
350+ if ( FD_UNLIKELY ( !txn_ctx -> progcache ) ) {
351+ FD_LOG_CRIT (( "fd_progcache_join() failed" ));
352+ }
353+ }
354+
355+ txn_ctx -> xid [0 ] = * xid ;
356+ txn_ctx -> status_cache = NULL ;
357+ txn_ctx -> bank_hash_cmp = NULL ;
358+ txn_ctx -> log .enable_exec_recording = !!( runner -> bank -> flags & FD_BANK_FLAGS_EXEC_RECORDING );
359+ txn_ctx -> bank = runner -> bank ;
347360
348361 fd_log_collector_init ( & ctx -> txn_ctx -> log .log_collector , 1 );
349362 fd_base58_encode_32 ( txn_ctx -> accounts .account_keys [ ctx -> instr -> program_id ].uc , NULL , ctx -> program_id_base58 );
0 commit comments