From 259930e2a304249d9b06557e6d25cab651e0860b Mon Sep 17 00:00:00 2001 From: Tobias Bucher Date: Fri, 12 Sep 2014 15:03:50 +0200 Subject: [PATCH] Document why `core::str::Searcher::new` doesn't overflow --- src/libcore/str.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libcore/str.rs b/src/libcore/str.rs index d6f35b0dcc6..6837f3b9af7 100644 --- a/src/libcore/str.rs +++ b/src/libcore/str.rs @@ -574,6 +574,9 @@ enum Searcher { impl Searcher { fn new(haystack: &[u8], needle: &[u8]) -> Searcher { // FIXME: Tune this. + // FIXME(#16715): This unsigned integer addition will probably not + // overflow because that would mean that the memory almost solely + // consists of the needle. Needs #16715 to be formally fixed. if needle.len() + 20 > haystack.len() { Naive(NaiveSearcher::new()) } else {