fix: placement.rs — actual_col==0 时下溢保护

This commit is contained in:
2026-06-17 09:06:18 +08:00
parent 43926888c9
commit d4da3b4277
+18 -14
View File
@@ -34,13 +34,15 @@ pub fn place_data(matrix: &mut Matrix, codewords: &[u8]) {
if bit_idx >= bits.len() { if bit_idx >= bits.len() {
break; break;
} }
place_bit( if actual_col > 0 {
matrix, place_bit(
(actual_col - 1) as u8, matrix,
row as u8, (actual_col - 1) as u8,
bits[bit_idx], row as u8,
&mut bit_idx, bits[bit_idx],
); &mut bit_idx,
);
}
} }
} else { } else {
for row in 0..size { for row in 0..size {
@@ -57,13 +59,15 @@ pub fn place_data(matrix: &mut Matrix, codewords: &[u8]) {
if bit_idx >= bits.len() { if bit_idx >= bits.len() {
break; break;
} }
place_bit( if actual_col > 0 {
matrix, place_bit(
(actual_col - 1) as u8, matrix,
row as u8, (actual_col - 1) as u8,
bits[bit_idx], row as u8,
&mut bit_idx, bits[bit_idx],
); &mut bit_idx,
);
}
} }
} }