From b8968e73878dd51a23d8be0835bdf27ddeaeb3e7 Mon Sep 17 00:00:00 2001 From: Jan Pochyla Date: Mon, 12 Dec 2016 15:20:20 +0100 Subject: [PATCH] minor perf changes --- src/apps/common/storage.py | 11 ++++++----- src/trezor/utils.py | 14 ++++++++------ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/apps/common/storage.py b/src/apps/common/storage.py index cda9a920b..98de70ea6 100644 --- a/src/apps/common/storage.py +++ b/src/apps/common/storage.py @@ -47,12 +47,11 @@ def unlock(user_pin: str, failure_callback=None) -> bool: # lock, run the callback (ie for ui) and sleep for a quadratic delay _locked = True delay_ms = fails * fails * 1000 - if failure_callback: - try: + try: + if failure_callback: failure_callback(delay_ms) - except: - pass - utime.sleep_ms(delay_ms) + finally: + utime.sleep_ms(delay_ms) return False @@ -158,6 +157,8 @@ def config_set_checked(key, value: bytes): utils.halt('config.set failed') +# TODO: store ints as varints + def int_to_bytes(i: int) -> bytes: return ustruct.pack('>L', i) if i else bytes() diff --git a/src/trezor/utils.py b/src/trezor/utils.py index b14f776ae..2f6e958f0 100644 --- a/src/trezor/utils.py +++ b/src/trezor/utils.py @@ -14,9 +14,10 @@ def _unimport_func(func): try: ret = func(*args, **kwargs) finally: - for to_remove in set(sys.modules) - mods: - log.debug(__name__, 'unimport %s', to_remove) - del sys.modules[to_remove] + for mod in sys.modules: + if mod not in mods: + log.debug(__name__, 'unimport %s', mod) + del sys.modules[mod] gc.collect() return ret return inner @@ -28,9 +29,10 @@ def _unimport_genfunc(genfunc): try: ret = await genfunc(*args, **kwargs) finally: - for to_remove in set(sys.modules) - mods: - log.debug(__name__, 'unimport %s', to_remove) - del sys.modules[to_remove] + for mod in sys.modules: + if mod not in mods: + log.debug(__name__, 'unimport %s', mod) + del sys.modules[mod] gc.collect() return ret return inner