mirror of
https://github.com/kaesaecracker/servicepoint-simulator.git
synced 2025-01-18 10:30:14 +01:00
prevent panic when packet sends too big sizes
This commit is contained in:
parent
33994537e6
commit
a2bd0978e7
|
@ -141,12 +141,15 @@ fn print_cp437_data(
|
||||||
let tile_y = char_y + y;
|
let tile_y = char_y + y;
|
||||||
|
|
||||||
let bitmap = font.get_bitmap(char_code);
|
let bitmap = font.get_bitmap(char_code);
|
||||||
print_pixel_grid(
|
if !print_pixel_grid(
|
||||||
tile_x * TILE_SIZE as usize,
|
tile_x * TILE_SIZE as usize,
|
||||||
tile_y * TILE_SIZE as usize,
|
tile_y * TILE_SIZE as usize,
|
||||||
bitmap,
|
bitmap,
|
||||||
display,
|
display,
|
||||||
);
|
) {
|
||||||
|
error!("stopping drawing text because char draw failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,7 +159,7 @@ fn print_pixel_grid(
|
||||||
offset_y: usize,
|
offset_y: usize,
|
||||||
pixels: &PixelGrid,
|
pixels: &PixelGrid,
|
||||||
display: &mut RwLockWriteGuard<PixelGrid>,
|
display: &mut RwLockWriteGuard<PixelGrid>,
|
||||||
) {
|
) -> bool {
|
||||||
debug!(
|
debug!(
|
||||||
"printing {}x{} grid at {offset_x} {offset_y}",
|
"printing {}x{} grid at {offset_x} {offset_y}",
|
||||||
pixels.width(),
|
pixels.width(),
|
||||||
|
@ -165,9 +168,19 @@ fn print_pixel_grid(
|
||||||
for inner_y in 0..pixels.height() {
|
for inner_y in 0..pixels.height() {
|
||||||
for inner_x in 0..pixels.width() {
|
for inner_x in 0..pixels.width() {
|
||||||
let is_set = pixels.get(inner_x, inner_y);
|
let is_set = pixels.get(inner_x, inner_y);
|
||||||
display.set(offset_x + inner_x, offset_y + inner_y, is_set);
|
let x = offset_x + inner_x;
|
||||||
|
let y = offset_y + inner_y;
|
||||||
|
|
||||||
|
if x >= display.width() || y >= display.height() {
|
||||||
|
error!("stopping pixel grid draw because coordinate {x} {y} is out of bounds");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
display.set(x, y, is_set);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_coordinates_for_index(offset: usize, index: usize) -> (usize, usize) {
|
fn get_coordinates_for_index(offset: usize, index: usize) -> (usize, usize) {
|
||||||
|
|
Loading…
Reference in a new issue