more assert for indexing safety
This commit is contained in:
parent
eb186e87e6
commit
aa17a9d676
|
|
@ -129,6 +129,7 @@
|
||||||
#![warn(clippy::print_stderr)]
|
#![warn(clippy::print_stderr)]
|
||||||
#![warn(clippy::print_stdout)]
|
#![warn(clippy::print_stdout)]
|
||||||
#![warn(clippy::unwrap_used)]
|
#![warn(clippy::unwrap_used)]
|
||||||
|
#![warn(clippy::expect_used)]
|
||||||
#![warn(clippy::cargo)]
|
#![warn(clippy::cargo)]
|
||||||
#![warn(clippy::std_instead_of_core)]
|
#![warn(clippy::std_instead_of_core)]
|
||||||
#![warn(clippy::alloc_instead_of_core)]
|
#![warn(clippy::alloc_instead_of_core)]
|
||||||
|
|
@ -492,12 +493,13 @@ impl PointCloud2Msg {
|
||||||
let field_names = ordered_field_names::<N, C>();
|
let field_names = ordered_field_names::<N, C>();
|
||||||
debug_assert!(field_names.len() == N);
|
debug_assert!(field_names.len() == N);
|
||||||
|
|
||||||
let layout = KnownLayoutInfo::try_from(C::layout())?;
|
let target_layout = KnownLayoutInfo::try_from(C::layout())?;
|
||||||
debug_assert!(field_names.len() <= layout.fields.len());
|
debug_assert!(field_names.len() <= target_layout.fields.len());
|
||||||
|
debug_assert!(self.fields.len() <= target_layout.fields.len());
|
||||||
|
|
||||||
let mut offset: u32 = 0;
|
let mut offset: u32 = 0;
|
||||||
let mut field_counter = 0;
|
let mut field_counter = 0;
|
||||||
for f in layout.fields.iter() {
|
for f in target_layout.fields.iter() {
|
||||||
match f {
|
match f {
|
||||||
PointField::Field {
|
PointField::Field {
|
||||||
datatype,
|
datatype,
|
||||||
|
|
@ -913,13 +915,13 @@ pub trait PointConvertible<const N: usize>:
|
||||||
fn layout() -> LayoutDescription;
|
fn layout() -> LayoutDescription;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
enum PointField {
|
enum PointField {
|
||||||
Padding(u32),
|
Padding(u32),
|
||||||
Field { size: u32, datatype: u8, count: u32 },
|
Field { size: u32, datatype: u8, count: u32 },
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
struct KnownLayoutInfo {
|
struct KnownLayoutInfo {
|
||||||
fields: Vec<PointField>,
|
fields: Vec<PointField>,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue