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() {
break;
}
place_bit(
matrix,
(actual_col - 1) as u8,
row as u8,
bits[bit_idx],
&mut bit_idx,
);
if actual_col > 0 {
place_bit(
matrix,
(actual_col - 1) as u8,
row as u8,
bits[bit_idx],
&mut bit_idx,
);
}
}
} else {
for row in 0..size {
@@ -57,13 +59,15 @@ pub fn place_data(matrix: &mut Matrix, codewords: &[u8]) {
if bit_idx >= bits.len() {
break;
}
place_bit(
matrix,
(actual_col - 1) as u8,
row as u8,
bits[bit_idx],
&mut bit_idx,
);
if actual_col > 0 {
place_bit(
matrix,
(actual_col - 1) as u8,
row as u8,
bits[bit_idx],
&mut bit_idx,
);
}
}
}