1
0
forked from Rativel/BurritOS

Renamed Machine::init_machine and fixed stack overflow by allocating main_memory to the heap

This commit is contained in:
François Autin
2023-03-11 23:49:20 +01:00
parent 1f54ed35db
commit 177abfe846
4 changed files with 45 additions and 43 deletions

View File

@@ -1,7 +1,4 @@
use std::fs;
use std::io::BufRead;
use std::io::BufReader;
use std::io::Lines;
use std::{fs, io::{BufRead, BufReader, Lines, Error}};
use crate::Machine;
const MEM_SIZE : usize = 4096;
@@ -117,9 +114,9 @@ impl MemChecker{
///
/// ### Return
/// Mem-checker filled
pub fn from(path: &String) -> MemChecker {
pub fn from(path: &str) -> Result<MemChecker, Error> {
let file = fs::File::open(path).expect("Wrong filename");
let file = fs::File::open(path)?;
let reader = BufReader::new(file);
let mut lines = reader.lines();
@@ -155,7 +152,7 @@ impl MemChecker{
}
MemChecker{pc, sp, sections}
Ok(MemChecker{pc, sp, sections})
}
@@ -311,8 +308,8 @@ mod tests {
#[test]
fn test_fill_memory(){
let path = "osef".to_string();
let m_c = MemChecker::from(&path);
let mut machine = Machine::_init_machine();
let m_c = MemChecker::from(&path).unwrap();
let mut machine = Machine::init_machine();
MemChecker::fill_memory_from_mem_checker(&m_c, &mut machine);
@@ -334,7 +331,7 @@ mod tests {
#[test]
fn test_create_mem_checker(){
let path: String = "osef".to_string();
let m_c = MemChecker::from(&path);
let m_c = MemChecker::from(&path).unwrap();
MemChecker::print_mem_checker(&m_c);
}