Skip to content

Commit 3d88fe0

Browse files
committed
mutators fn written, compiles
1 parent 070c9b5 commit 3d88fe0

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

mmtk/src/active_plan.rs

+17-6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ struct SillyIterator<'a>{
1616
phantom_data: PhantomData<&'a ()>,
1717
}
1818

19+
impl<'a> Iterator for SillyIterator<'a> {
20+
type Item = &'a mut Mutator<DummyVM>;
21+
22+
fn next(&mut self) -> Option<Self::Item> {
23+
self.mutators.pop_front()
24+
}
25+
}
26+
1927
// Documentation: https://docs.mmtk.io/api/mmtk/vm/active_plan/trait.ActivePlan.html
2028
impl ActivePlan<DummyVM> for VMActivePlan {
2129
fn number_of_mutators() -> usize {
@@ -33,15 +41,18 @@ impl ActivePlan<DummyVM> for VMActivePlan {
3341

3442
fn mutators<'a>() -> Box<dyn Iterator<Item = &'a mut Mutator<DummyVM>> + 'a> {
3543
let mut new_mutators = VecDeque::new();
44+
let null_mutator : *mut Mutator<DummyVM> = ptr::null_mut();
45+
46+
if !null_mutator.is_null() {
47+
unsafe {
48+
new_mutators.push_back(&mut *null_mutator);
49+
}
50+
}
3651

37-
let null_mutator : *mut Mutator<DummyVM> = ptr::null_mut();
38-
new_mutators.push_back(unsafe { &mut *null_mutator} );
39-
4052
Box::new(SillyIterator {
4153
mutators: new_mutators,
4254
phantom_data: PhantomData,
43-
});
55+
})
4456

45-
unimplemented!()
4657
}
47-
}
58+
}

0 commit comments

Comments
 (0)