summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlake Imsland <[email protected]>2022-03-13 23:27:46 -0700
committergit <[email protected]>2023-12-29 02:43:45 +0000
commite86b4c29fc91fa510ee2cf3f5e3296a9a66affb5 (patch)
treef1a8ea39866327a228684d66be7eb278315e6588
parent2b96737636e1c96fedda83895ef32e19a914e310 (diff)
[ruby/securerandom] Increase speed of UUID generation
https://github.com/ruby/securerandom/commit/b587b8c7cb
-rw-r--r--lib/random/formatter.rb8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/random/formatter.rb b/lib/random/formatter.rb
index 27eb6dae52..0548e86cca 100644
--- a/lib/random/formatter.rb
+++ b/lib/random/formatter.rb
@@ -168,10 +168,10 @@ module Random::Formatter
# See RFC4122[https://datatracker.ietf.org/doc/html/rfc4122] for details of UUID.
#
def uuid
- ary = random_bytes(16).unpack("NnnnnN")
- ary[2] = (ary[2] & 0x0fff) | 0x4000
- ary[3] = (ary[3] & 0x3fff) | 0x8000
- "%08x-%04x-%04x-%04x-%04x%08x" % ary
+ ary = random_bytes(16)
+ ary.setbyte(6, (ary.getbyte(6) & 0x0f) | 0x40)
+ ary.setbyte(8, (ary.getbyte(8) & 0x3f) | 0x80)
+ ary.unpack("H8H4H4H4H12").join(?-)
end
alias uuid_v4 uuid