aboutsummaryrefslogtreecommitdiff
path: root/py/objstr.c
diff options
context:
space:
mode:
authorIyassou Shimels <s.iyassou@gmail.com>2020-09-23 22:45:22 +0300
committerDamien George <damien@micropython.org>2020-09-24 11:04:58 +1000
commitca017841d65b5f9da5eb4e6e3ca66b009bc54fc4 (patch)
tree835c229fc89db716449a19b2f3537e077a37d97d /py/objstr.c
parentbada8c923195622aee80faf7acf003bc7852459d (diff)
py/objstr: Make bytes(bytes_obj) return bytes_obj.
Calling the bytes constructor on a bytes object returns the original bytes object. This saves allocating a new instance, and matches CPython. Signed-off-by: Iyassou Shimels <s.iyassou@gmail.com>
Diffstat (limited to 'py/objstr.c')
-rw-r--r--py/objstr.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/py/objstr.c b/py/objstr.c
index a276a255e..84728e6f2 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -205,6 +205,10 @@ STATIC mp_obj_t bytes_make_new(const mp_obj_type_t *type_in, size_t n_args, size
return mp_const_empty_bytes;
}
+ if (mp_obj_is_type(args[0], &mp_type_bytes)) {
+ return args[0];
+ }
+
if (mp_obj_is_str(args[0])) {
if (n_args < 2 || n_args > 3) {
goto wrong_args;