From cbd9ae5256731c24a4cebf1b1d9bdbfac5df8792 Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Tue, 17 Nov 2015 12:37:02 +0000
Subject: [PATCH] py/compile: Don't unnecessarily save state when compiling
 param list.

Parameter lists can't be nested so there is no need to save the global
state when compiling them.
---
 py/compile.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/py/compile.c b/py/compile.c
index e0561e6c3..7ef25a7b9 100644
--- a/py/compile.c
+++ b/py/compile.c
@@ -663,11 +663,6 @@ STATIC qstr compile_funcdef_helper(compiler_t *comp, mp_parse_node_struct_t *pns
         pns->nodes[4] = (mp_parse_node_t)s;
     }
 
-    // save variables (probably don't need to do this, since we can't have nested definitions..?)
-    uint old_have_star = comp->have_star;
-    uint old_num_dict_params = comp->num_dict_params;
-    uint old_num_default_params = comp->num_default_params;
-
     // compile default parameters
     comp->have_star = false;
     comp->num_dict_params = 0;
@@ -691,11 +686,6 @@ STATIC qstr compile_funcdef_helper(compiler_t *comp, mp_parse_node_struct_t *pns
     // make the function
     close_over_variables_etc(comp, fscope, comp->num_default_params, comp->num_dict_params);
 
-    // restore variables
-    comp->have_star = old_have_star;
-    comp->num_dict_params = old_num_dict_params;
-    comp->num_default_params = old_num_default_params;
-
     // return its name (the 'f' in "def f(...):")
     return fscope->simple_name;
 }
-- 
GitLab