forked from Rativel/BurritOS
Renamed Machine::init_machine and fixed stack overflow by allocating main_memory to the heap
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user