Make memory watching work before sim is started
This commit is contained in:
+5
-4
@@ -518,11 +518,12 @@ impl Emulator {
|
||||
let Some(region) = region.upgrade() else {
|
||||
return false;
|
||||
};
|
||||
let Some(sim) = self.sims.get_mut(range.sim.to_index()) else {
|
||||
return false;
|
||||
};
|
||||
self.buffer.clear();
|
||||
sim.read_memory(range.start, range.length, &mut self.buffer);
|
||||
if let Some(sim) = self.sims.get_mut(range.sim.to_index()) {
|
||||
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);
|
||||
true
|
||||
});
|
||||
|
||||
+7
-1
@@ -142,7 +142,6 @@ impl BufferPool {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
struct Buffer {
|
||||
data: Mutex<Vec<u8>>,
|
||||
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