You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Optimize try_reserve by implementing TODO (remove redundant overflow check) #801
Following up on #787, I noticed the TODO comment suggests removing
the checked_add since it's redundant given MAX_SIZE bounds.
Since I'm familiar with this code area,
I wanted to implement this small optimization. Let me know if now is
a good time or if you'd prefer to defer this.
// TODO: This can't overflow if done properly... since the max # of// elements is u16::MAX.let cap = self.entries.len().checked_add(additional).ok_or_else(MaxSizeReached::new)?;
Even with additional + self.entries.len(), we validate against MAX_SIZE later via to_raw_capacity
Solution
Replace checked_add with an early bounds check:
// Early bounds check: Since self.entries.len() <= MAX_SIZE (invariant),// and MAX_SIZE fits in u16, we can avoid checked_add by validating// that additional won't cause the total to exceed MAX_SIZE.let current_len = self.entries.len();if additional > MAX_SIZE.saturating_sub(current_len){returnErr(MaxSizeReached::new());}// Safe: We've verified that current_len + additional <= MAX_SIZE,// which is well within usize range, so no overflow is possible.let cap = current_len + additional;
Benefits
Performance: Eliminates one checked_add operation per try_reserve call
Clarity: Makes the MAX_SIZE constraint explicit upfront
Early failure: Rejects invalid requests before unnecessary computation
changed the title [-]perf: Optimize try_reserve by implementing TODO (remove redundant overflow check)[/-][+]Optimize try_reserve by implementing TODO (remove redundant overflow check)[/+]on Nov 24, 2025
@seanmonstar,
I've gone ahead and opened a PR for this here: #812 . It implements the cleanup follows up on the TODO in #787. Ready for review whenever you have a moment!
Activity
[-]perf: Optimize try_reserve by implementing TODO (remove redundant overflow check)[/-][+]Optimize try_reserve by implementing TODO (remove redundant overflow check)[/+]AriajSarkar commentedon Jan 1, 2026
@seanmonstar,
I've gone ahead and opened a PR for this here: #812 . It implements the cleanup follows up on the TODO in #787. Ready for review whenever you have a moment!