Correct the reason for using clone

This commit is contained in:
Philipp Oppermann
2015-11-16 14:59:23 +01:00
parent fc856a55a6
commit 25122bc05c

View File

@@ -306,7 +306,9 @@ fn choose_next_area(&mut self) {
} }
} }
``` ```
This function chooses the area with the minimal base address that still has free frames, i.e. `next_free_frame` is smaller than its last frame. Note that we need to clone the iterator because the order of areas in the memory map isn't specified. If there are no areas with free frames left, `min_by` automatically returns the desired `None`. This function chooses the area with the minimal base address that still has free frames, i.e. `next_free_frame` is smaller than its last frame. Note that we need to clone the iterator because the [min_by] function consumes it. If there are no areas with free frames left, `min_by` automatically returns the desired `None`.
[min_by]: https://doc.rust-lang.org/nightly/core/iter/trait.Iterator.html#method.min_by
If the `next_free_frame` is below the new `current_area`, it needs to be updated to the area's start frame. Else, the `allocate_frame` call could return an unavailable frame. If the `next_free_frame` is below the new `current_area`, it needs to be updated to the area's start frame. Else, the `allocate_frame` call could return an unavailable frame.