From 135479a58d191af553e0c7b797a8388b3cc77ffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Thu, 30 Jan 2025 15:43:09 +0100 Subject: [PATCH] [rubygems/rubygems] Allocate strings from Requirement match only once https://github.com/rubygems/rubygems/commit/c65b8644e6 Co-authored-by: Samuel Giddins --- lib/rubygems/requirement.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/rubygems/requirement.rb b/lib/rubygems/requirement.rb index 4bbfbfd7c4..0d3f98eb0f 100644 --- a/lib/rubygems/requirement.rb +++ b/lib/rubygems/requirement.rb @@ -106,13 +106,15 @@ class Gem::Requirement unless PATTERN =~ obj.to_s raise BadRequirementError, "Illformed requirement [#{obj.inspect}]" end + op = -($1 || "=") + version = -$2 - if $1 == ">=" && $2 == "0" + if op == ">=" && version == "0" DefaultRequirement - elsif $1 == ">=" && $2 == "0.a" + elsif op == ">=" && version == "0.a" DefaultPrereleaseRequirement else - [-($1 || "="), Gem::Version.new($2)] + [op, Gem::Version.new(version)] end end