Mercurial > public > mercurial-scm > hg-stable
changeset 53003:155e1e8dc055
rust-nodemap: don't compute the error string unless needed
This is... really dumb and costs a ton of performance in a hot loop. It was
75% of a profile for a tip to null p1 node traversal in pure Rust.
I'm at fault, done in 652149ed64f08ee73e8fd2f76aa480ea8820fe08.
I thought clippy had a lint for this, but apparently not?
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Fri, 21 Feb 2025 13:56:11 -0500 |
parents | 33e06272ff1a |
children | 3fae90405966 |
files | rust/hg-core/src/revlog/mod.rs |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/rust/hg-core/src/revlog/mod.rs Thu Feb 20 11:44:44 2025 +0100 +++ b/rust/hg-core/src/revlog/mod.rs Fri Feb 21 13:56:11 2025 -0500 @@ -374,7 +374,9 @@ nodemap .find_bin(self.index(), node) .map_err(|err| (err, format!("{:x}", node)))? - .ok_or(RevlogError::InvalidRevision(format!("{:x}", node))) + .ok_or_else(|| { + RevlogError::InvalidRevision(format!("{:x}", node)) + }) } else { self.index().rev_from_node_no_persistent_nodemap(node) }