Fix debug asserts for dwarf transform (#1413)
* Fix debug asserts for dwarf transform * feedback
This commit is contained in:
@@ -357,6 +357,7 @@ pub struct TransformRangeIter<'a> {
|
|||||||
end_it: TransformRangeEndIter<'a>,
|
end_it: TransformRangeEndIter<'a>,
|
||||||
last_start: Option<(GeneratedAddress, RangeIndex)>,
|
last_start: Option<(GeneratedAddress, RangeIndex)>,
|
||||||
last_end: Option<(GeneratedAddress, RangeIndex)>,
|
last_end: Option<(GeneratedAddress, RangeIndex)>,
|
||||||
|
last_item: Option<(GeneratedAddress, GeneratedAddress)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> TransformRangeIter<'a> {
|
impl<'a> TransformRangeIter<'a> {
|
||||||
@@ -371,6 +372,7 @@ impl<'a> TransformRangeIter<'a> {
|
|||||||
end_it,
|
end_it,
|
||||||
last_start,
|
last_start,
|
||||||
last_end,
|
last_end,
|
||||||
|
last_item: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -409,9 +411,6 @@ impl<'a> Iterator for TransformRangeIter<'a> {
|
|||||||
Some(range_start) => {
|
Some(range_start) => {
|
||||||
// Consume start iterator.
|
// Consume start iterator.
|
||||||
self.last_start = self.start_it.next();
|
self.last_start = self.start_it.next();
|
||||||
debug_assert!(
|
|
||||||
self.last_start.is_none() || range_start < self.last_start.unwrap().0
|
|
||||||
);
|
|
||||||
range_start
|
range_start
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
@@ -423,7 +422,6 @@ impl<'a> Iterator for TransformRangeIter<'a> {
|
|||||||
Some(range_end) => {
|
Some(range_end) => {
|
||||||
// Consume end iterator.
|
// Consume end iterator.
|
||||||
self.last_end = self.end_it.next();
|
self.last_end = self.end_it.next();
|
||||||
debug_assert!(self.last_end.is_none() || range_end < self.last_end.unwrap().0);
|
|
||||||
range_end
|
range_end
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
@@ -432,6 +430,13 @@ impl<'a> Iterator for TransformRangeIter<'a> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if cfg!(debug_assertions) {
|
||||||
|
match self.last_item.replace((range_start, range_end)) {
|
||||||
|
Some((_, last_end)) => debug_assert!(last_end <= range_start),
|
||||||
|
None => (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if range_start < range_end {
|
if range_start < range_end {
|
||||||
return Some((range_start, range_end));
|
return Some((range_start, range_end));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user