Fix an indexing problem in multiboot2

This commit is contained in:
Zhang Junyang
2024-06-20 16:06:09 +00:00
committed by Tate, Hongliang Tian
parent d6714c4b47
commit 0515a8dc9a

View File

@ -108,11 +108,10 @@ fn init_memory_regions(memory_regions: &'static Once<Vec<MemoryRegion>>) {
let memory_regions_tag = mb2_info let memory_regions_tag = mb2_info
.memory_map_tag() .memory_map_tag()
.expect("Memory region not found from the Multiboot2 header!"); .expect("Memory region not found from the Multiboot2 header!");
let num_memory_regions = memory_regions_tag.memory_areas().len(); for region in memory_regions_tag.memory_areas() {
for i in 0..num_memory_regions { let start = region.start_address();
let start = memory_regions_tag.memory_areas()[i].start_address(); let end = region.end_address();
let end = memory_regions_tag.memory_areas()[i].end_address(); let area_typ: MemoryRegionType = MemoryAreaType::from(region.typ()).into();
let area_typ: MemoryRegionType = memory_regions_tag.memory_areas()[i].typ().into();
let region = MemoryRegion::new( let region = MemoryRegion::new(
start.try_into().unwrap(), start.try_into().unwrap(),
(end - start).try_into().unwrap(), (end - start).try_into().unwrap(),