@@ -1650,7 +1650,7 @@ bloom_filter_may_contain(_PyBloomFilter *bloom, _PyBloomFilter *hashes)
16501650}
16511651
16521652static int
1653- link_executor (_PyExecutorObject * executor )
1653+ link_executor (_PyExecutorObject * executor , const _PyBloomFilter * bloom )
16541654{
16551655 PyInterpreterState * interp = _PyInterpreterState_GET ();
16561656 if (interp -> executor_count == interp -> executor_capacity ) {
@@ -1673,7 +1673,7 @@ link_executor(_PyExecutorObject *executor)
16731673 interp -> executor_capacity = new_cap ;
16741674 }
16751675 size_t idx = interp -> executor_count ++ ;
1676- interp -> executor_blooms [idx ] = executor -> vm_data . bloom ;
1676+ interp -> executor_blooms [idx ] = * bloom ;
16771677 interp -> executor_ptrs [idx ] = executor ;
16781678 executor -> vm_data .bloom_array_idx = (int32_t )idx ;
16791679 return 0 ;
@@ -1702,10 +1702,7 @@ _Py_ExecutorInit(_PyExecutorObject *executor, const _PyBloomFilter *dependency_s
17021702 executor -> vm_data .valid = true;
17031703 executor -> vm_data .pending_deletion = 0 ;
17041704 executor -> vm_data .code = NULL ;
1705- for (int i = 0 ; i < _Py_BLOOM_FILTER_WORDS ; i ++ ) {
1706- executor -> vm_data .bloom .bits [i ] = dependency_set -> bits [i ];
1707- }
1708- if (link_executor (executor ) < 0 ) {
1705+ if (link_executor (executor , dependency_set ) < 0 ) {
17091706 return -1 ;
17101707 }
17111708 return 0 ;
@@ -1819,8 +1816,6 @@ void
18191816_Py_Executor_DependsOn (_PyExecutorObject * executor , void * obj )
18201817{
18211818 assert (executor -> vm_data .valid );
1822- _Py_BloomFilter_Add (& executor -> vm_data .bloom , obj );
1823- /* Keep the contiguous bloom array in sync */
18241819 PyInterpreterState * interp = _PyInterpreterState_GET ();
18251820 int32_t idx = executor -> vm_data .bloom_array_idx ;
18261821 assert (idx >= 0 && (size_t )idx < interp -> executor_count );
0 commit comments