File 8572-Optimize-string-lenght-1-on-binaries.patch of Package erlang

From 79e9126932e724d9556b4f95174b3f277a8c505e Mon Sep 17 00:00:00 2001
From: Dan Gudmundsson <dgud@erlang.org>
Date: Wed, 30 Apr 2025 09:04:30 +0200
Subject: [PATCH 2/2] Optimize string:lenght/1 on binaries

---
 lib/stdlib/src/string.erl | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lib/stdlib/src/string.erl b/lib/stdlib/src/string.erl
index 02dd04fae7..cfcf6d74cb 100644
--- a/lib/stdlib/src/string.erl
+++ b/lib/stdlib/src/string.erl
@@ -1146,6 +1146,13 @@ length_1(Str, N) ->
         {error, Err} -> error({badarg, Err})
     end.
 
+length_b(<<CP2, CP3, CP4, CP5, CP6, CP7, CP8, CP9, Rest/binary>>,
+         CP1, N)
+  when CP1 =/= $\r,CP2 =/= $\r,CP3 =/= $\r,CP4 =/= $\r,
+       CP5 =/= $\r,CP6 =/= $\r,CP7 =/= $\r,CP8 =/= $\r,
+       ((CP1 bor CP2 bor CP3 bor CP4 bor CP5 bor CP6 bor CP7 bor CP8 bor CP9)
+            band bnot 127) =:= 0 ->
+    length_b(Rest, CP9, N+8);
 length_b(<<CP2/utf8, Rest/binary>>, CP1, N)
   when ?ASCII_LIST(CP1,CP2) ->
     length_b(Rest, CP2, N+1);
-- 
2.43.0

openSUSE Build Service is sponsored by