diff options
| author | Damien George <damien@micropython.org> | 2022-04-08 14:05:23 +1000 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2022-04-14 23:52:14 +1000 |
| commit | 40d431d1bbb7928ab399bf892e90cf232a83e2b9 (patch) | |
| tree | 4566bc835f209ee5a3847e61610b9aeac47081b5 | |
| parent | e647966fc919cc4519b84a36960e983f70b4cdca (diff) | |
tools/mpy-tool.py: Optimise freezing of str when str data is a qstr.
Signed-off-by: Damien George <damien@micropython.org>
| -rwxr-xr-x | tools/mpy-tool.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tools/mpy-tool.py b/tools/mpy-tool.py index e3a812ebe..f4a8ef642 100755 --- a/tools/mpy-tool.py +++ b/tools/mpy-tool.py @@ -478,6 +478,12 @@ class GlobalQStrList: def get_by_index(self, i): return self.qstrs[i] + def find_by_str(self, s): + for q in self.qstrs: + if q is not None and q.str == s: + return q + return None + class MPFunTable: def __repr__(self): @@ -633,6 +639,9 @@ class CompiledModule: else: return "MP_ROM_PTR(&mp_const_empty_bytes_obj)" if is_str_type(obj): + q = global_qstrs.find_by_str(obj) + if q: + return "MP_ROM_QSTR(%s)" % q.qstr_id obj = bytes_cons(obj, "utf8") obj_type = "mp_type_str" else: |
