rust-index: don't compute error messages unless needed
Same as the previous patch, this is just dumb performance loss.
--- a/rust/hg-core/src/revlog/index.rs Fri Feb 21 13:56:11 2025 -0500
+++ b/rust/hg-core/src/revlog/index.rs Fri Feb 21 13:58:21 2025 -0500
@@ -880,9 +880,9 @@
if parent_base.0 == p1.0 {
break;
}
- p1 = self.check_revision(parent_base).ok_or(
- RevlogError::InvalidRevision(parent_base.to_string()),
- )?;
+ p1 = self.check_revision(parent_base).ok_or_else(|| {
+ RevlogError::InvalidRevision(parent_base.to_string())
+ })?;
}
while let Some(p2_entry) = self.get_entry(p2) {
if p2_entry.compressed_len() != 0 || p2.0 == 0 {
@@ -893,16 +893,16 @@
if parent_base.0 == p2.0 {
break;
}
- p2 = self.check_revision(parent_base).ok_or(
- RevlogError::InvalidRevision(parent_base.to_string()),
- )?;
+ p2 = self.check_revision(parent_base).ok_or_else(|| {
+ RevlogError::InvalidRevision(parent_base.to_string())
+ })?;
}
if base == p1.0 || base == p2.0 {
return Ok(false);
}
- rev = self
- .check_revision(base.into())
- .ok_or(RevlogError::InvalidRevision(base.to_string()))?;
+ rev = self.check_revision(base.into()).ok_or_else(|| {
+ RevlogError::InvalidRevision(base.to_string())
+ })?;
}
Ok(rev == NULL_REVISION)
}