From 2eb1f604ee3a1b7284ae23581a9c0e2d1e9066a1 Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Mon, 11 Aug 2014 23:24:29 +0100
Subject: [PATCH] py, objstr: Optimise bytes subscr when unicode is enabled.

Saves code bytes and makes it faster, so why not?
---
 py/objstr.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/py/objstr.c b/py/objstr.c
index fb170f83c..35bb8e749 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -370,7 +370,8 @@ STATIC mp_obj_t bytes_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
         }
 #endif
         mp_uint_t index_val = mp_get_index(type, self_len, index, false);
-        if (type == &mp_type_bytes) {
+        // If we have unicode enabled the type will always be bytes, so take the short cut.
+        if (MICROPY_PY_BUILTINS_STR_UNICODE || type == &mp_type_bytes) {
             return MP_OBJ_NEW_SMALL_INT(self_data[index_val]);
         } else {
             return mp_obj_new_str((char*)&self_data[index_val], 1, true);
-- 
GitLab