Make memory watching work before sim is started
This commit is contained in:
+4
-3
@@ -518,11 +518,12 @@ impl Emulator {
|
|||||||
let Some(region) = region.upgrade() else {
|
let Some(region) = region.upgrade() else {
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
let Some(sim) = self.sims.get_mut(range.sim.to_index()) else {
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
self.buffer.clear();
|
self.buffer.clear();
|
||||||
|
if let Some(sim) = self.sims.get_mut(range.sim.to_index()) {
|
||||||
sim.read_memory(range.start, range.length, &mut self.buffer);
|
sim.read_memory(range.start, range.length, &mut self.buffer);
|
||||||
|
} else {
|
||||||
|
self.buffer.extend(std::iter::repeat_n(0, range.length));
|
||||||
|
}
|
||||||
region.update(&self.buffer);
|
region.update(&self.buffer);
|
||||||
true
|
true
|
||||||
});
|
});
|
||||||
|
|||||||
+7
-1
@@ -142,7 +142,6 @@ impl BufferPool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
|
||||||
struct Buffer {
|
struct Buffer {
|
||||||
data: Mutex<Vec<u8>>,
|
data: Mutex<Vec<u8>>,
|
||||||
id: AtomicU64,
|
id: AtomicU64,
|
||||||
@@ -155,3 +154,10 @@ impl Buffer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
impl std::fmt::Debug for Buffer {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
f.debug_struct("Buffer")
|
||||||
|
.field("id", &self.id)
|
||||||
|
.finish_non_exhaustive()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user