File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change @@ -271,10 +271,10 @@ fn dense_sparse_intersect<T: Idx>(
271
271
dense : & BitSet < T > ,
272
272
sparse : & SparseBitSet < T > ,
273
273
) -> ( SparseBitSet < T > , bool ) {
274
- let n = dense. count ( ) ;
275
274
let mut sparse_copy = sparse. clone ( ) ;
276
275
sparse_intersect ( & mut sparse_copy, |el| !dense. contains ( * el) ) ;
277
- ( sparse_copy, dense. count ( ) != n)
276
+ let n = sparse_copy. len ( ) ;
277
+ ( sparse_copy, n != dense. count ( ) )
278
278
}
279
279
280
280
impl < T : Idx > BitRelations < HybridBitSet < T > > for BitSet < T > {
@@ -303,7 +303,10 @@ impl<T: Idx> BitRelations<HybridBitSet<T>> for BitSet<T> {
303
303
match other {
304
304
HybridBitSet :: Sparse ( sparse) => {
305
305
let ( updated, changed) = dense_sparse_intersect ( self , sparse) ;
306
- * self = updated. to_dense ( ) ;
306
+ self . clear ( ) ;
307
+ for elem in updated. iter ( ) {
308
+ self . insert ( * elem) ;
309
+ }
307
310
changed
308
311
}
309
312
HybridBitSet :: Dense ( dense) => self . intersect ( dense) ,
You can’t perform that action at this time.
0 commit comments