From 74ed06828f4f8d4ec5c04f5b551e90f2fccbd0f3 Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Mon, 8 Apr 2019 15:20:56 +1000
Subject: [PATCH] tools/mpy-tool.py: Fix init of QStrWindow, and remove unused
 variable.

The qstr window size is not log-2 encoded, it's just the actual number (but
in mpy-tool.py this didn't lead to an error because the size is just used
to truncate the window so it doesn't grow arbitrarily large in memory).

Addresses issue #4635.
---
 tools/mpy-tool.py | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/tools/mpy-tool.py b/tools/mpy-tool.py
index b8e5297aa..c8216bb60 100755
--- a/tools/mpy-tool.py
+++ b/tools/mpy-tool.py
@@ -75,9 +75,9 @@ for n in qstrutil.static_qstr_list:
     global_qstrs.append(QStrType(n))
 
 class QStrWindow:
-    def __init__(self, size_log2):
+    def __init__(self, size):
         self.window = []
-        self.size = 1 << size_log2
+        self.size = size
 
     def push(self, val):
         self.window = [val] + self.window[:self.size - 1]
@@ -633,7 +633,6 @@ def read_qstr_and_pack(f, bytecode, qstr_win):
     bytecode.append(qst >> 8)
 
 def read_bytecode(file, bytecode, qstr_win):
-    QSTR_LAST_STATIC = len(qstrutil.static_qstr_list)
     while not bytecode.is_full():
         op = read_byte(file, bytecode)
         f, sz = mp_opcode_format(bytecode.buf, bytecode.idx - 1, False)
-- 
GitLab