Skip to content

Commit 2c1fdf3

Browse files
authored
gh-141968: Use bytearray.take_bytes in base64 _b32encode and _b32decode (#141971)
1 parent 2ff8608 commit 2c1fdf3

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

Lib/base64.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ def _b32encode(alphabet, s):
193193
encoded[-3:] = b'==='
194194
elif leftover == 4:
195195
encoded[-1:] = b'='
196-
return bytes(encoded)
196+
return encoded.take_bytes()
197197

198198
def _b32decode(alphabet, s, casefold=False, map01=None):
199199
# Delay the initialization of the table to not waste memory
@@ -238,7 +238,7 @@ def _b32decode(alphabet, s, casefold=False, map01=None):
238238
last = acc.to_bytes(5) # big endian
239239
leftover = (43 - 5 * padchars) // 8 # 1: 4, 3: 3, 4: 2, 6: 1
240240
decoded[-5:] = last[:leftover]
241-
return bytes(decoded)
241+
return decoded.take_bytes()
242242

243243

244244
def b32encode(s):
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Remove a data copy from :func:`base64.b32decode` and
2+
:func:`base64.b32encode` by using :func:`bytearray.take_bytes`.

0 commit comments

Comments
 (0)