py, compiler: Clean up and compress scope/compile structures.
Convert int types to uint where sensible, and then to uint8_t or
uint16_t where possible to reduce RAM usage.
diff --git a/py/compile.c b/py/compile.c
index 95fe1d7..778e932 100644
--- a/py/compile.c
+++ b/py/compile.c
@@ -38,16 +38,17 @@
typedef struct _compiler_t {
qstr source_file;
- bool is_repl;
- pass_kind_t pass;
- bool had_error; // try to keep compiler clean from nlr
+ uint8_t is_repl;
+ uint8_t pass; // holds enum type pass_kind_t
+ uint8_t had_error; // try to keep compiler clean from nlr
+ uint8_t func_arg_is_super; // used to compile special case of super() function call
int next_label;
int break_label;
int continue_label;
int break_continue_except_level;
- int cur_except_level; // increased for SETUP_EXCEPT, SETUP_FINALLY; decreased for POP_BLOCK, POP_EXCEPT
+ uint16_t cur_except_level; // increased for SETUP_EXCEPT, SETUP_FINALLY; decreased for POP_BLOCK, POP_EXCEPT
int n_arg_keyword;
bool have_star_arg;
@@ -57,8 +58,6 @@
int param_pass_num_dict_params;
int param_pass_num_default_params;
- bool func_arg_is_super; // used to compile special case of super() function call
-
scope_t *scope_head;
scope_t *scope_cur;