From 34759a9f5d935ed974fad8b1cbe91f0708dc883a Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Sun, 30 Aug 2026 14:22:31 +0200 Subject: [PATCH] Reuse sorted Punycode input order --- lib/domain_name/punycode.rb | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/lib/domain_name/punycode.rb b/lib/domain_name/punycode.rb index 52332f2..10a224f 100644 --- a/lib/domain_name/punycode.rb +++ b/lib/domain_name/punycode.rb @@ -120,14 +120,9 @@ def encode(string) # Main encoding loop - while h < input.length - # All non-basic code points < n have been handled already. Find - # the next larger one - - m = MAXINT - input.each { |cp| - m = cp if (n...m) === cp - } + input.reject { |cp| cp < INITIAL_N }.uniq.sort.each do |m| + # All non-basic code points < n have been handled already. Advance + # to the next larger one from the ordering computed above. # Increase delta enough to advance the decoder's state to # , but guard against overflow