Skip to content

Commit 20d2a99

Browse files
committed
Implement RawIter through FullBucketIndices
1 parent d30e114 commit 20d2a99

File tree

2 files changed

+167
-94
lines changed

2 files changed

+167
-94
lines changed

src/external_trait_impls/rayon/raw.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ impl<T> Clone for RawParIter<T> {
3232

3333
impl<T> From<RawIter<T>> for RawParIter<T> {
3434
fn from(it: RawIter<T>) -> Self {
35-
RawParIter { iter: it.iter }
35+
RawParIter {
36+
iter: From::from(it),
37+
}
3638
}
3739
}
3840

@@ -94,7 +96,7 @@ impl<T: Send, A: Allocator + Clone + Send> ParallelIterator for RawIntoParIter<T
9496
where
9597
C: UnindexedConsumer<Self::Item>,
9698
{
97-
let iter = unsafe { self.table.iter().iter };
99+
let iter = unsafe { self.table.raw_iter_range() };
98100
let _guard = guard(self.table.into_allocation(), |alloc| {
99101
if let Some((ptr, layout, ref alloc)) = *alloc {
100102
unsafe {
@@ -135,7 +137,7 @@ impl<T: Send, A: Allocator + Clone> ParallelIterator for RawParDrain<'_, T, A> {
135137
let _guard = guard(self.table, |table| unsafe {
136138
table.as_mut().clear_no_drop();
137139
});
138-
let iter = unsafe { self.table.as_ref().iter().iter };
140+
let iter = unsafe { self.table.as_ref().raw_iter_range() };
139141
mem::forget(self);
140142
let producer = ParDrainProducer { iter };
141143
plumbing::bridge_unindexed(producer, consumer)
@@ -208,7 +210,7 @@ impl<T, A: Allocator + Clone> RawTable<T, A> {
208210
#[cfg_attr(feature = "inline-more", inline)]
209211
pub unsafe fn par_iter(&self) -> RawParIter<T> {
210212
RawParIter {
211-
iter: self.iter().iter,
213+
iter: self.raw_iter_range(),
212214
}
213215
}
214216

0 commit comments

Comments
 (0)