py: Put all bytecode state (arg count, etc) in bytecode.

This commit is contained in:
Damien George
2015-10-22 23:45:37 +01:00
parent 9b7f583b0c
commit 3a3db4dcf0
14 changed files with 95 additions and 78 deletions

View File

@@ -31,12 +31,6 @@
typedef struct _mp_obj_fun_bc_t {
mp_obj_base_t base;
mp_obj_dict_t *globals; // the context within which this function was defined
mp_uint_t n_pos_args : 8; // number of arguments this function takes
mp_uint_t n_kwonly_args : 8; // number of keyword-only arguments this function takes
mp_uint_t n_def_args : 8; // number of default arguments
mp_uint_t has_def_kw_args : 1; // set if this function has default keyword args
mp_uint_t takes_var_args : 1; // set if this function takes variable args
mp_uint_t takes_kw_args : 1; // set if this function takes keyword args
const byte *bytecode; // bytecode for the function
// the following extra_args array is allocated space to take (in order):
// - values of positional default args (if any)