diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-01-24 16:20:11 +0200 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-01-24 16:31:20 +0200 |
commit | f46d87a30d09bfa904c2b9769ea52271abb86b0c (patch) | |
tree | f5fb8aa053f3e3e00843b990e0d49da56d1f2dbc /py/emitbc.c | |
parent | 2b2cb7b7f4f467b67082f79053118df78f48e66e (diff) | |
download | micropython-f46d87a30d09bfa904c2b9769ea52271abb86b0c.tar.gz micropython-f46d87a30d09bfa904c2b9769ea52271abb86b0c.zip |
Add support for freeing code emitter objects at the end of compilation.
Diffstat (limited to 'py/emitbc.c')
-rw-r--r-- | py/emitbc.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/py/emitbc.c b/py/emitbc.c index c3385e0b66..d66202eb2a 100644 --- a/py/emitbc.c +++ b/py/emitbc.c @@ -43,6 +43,11 @@ emit_t *emit_bc_new(uint max_num_labels) { return emit; } +static void emit_bc_free(emit_t *emit) { + m_del(uint, emit->label_offsets, emit->max_num_labels); + m_del_obj(emit_t, emit); +} + // all functions must go through this one to emit code info static byte* emit_get_cur_to_write_code_info(emit_t* emit, int num_bytes_to_write) { //printf("emit %d\n", num_bytes_to_write); @@ -751,6 +756,8 @@ static void emit_bc_yield_from(emit_t *emit) { } const emit_method_table_t emit_bc_method_table = { + emit_bc_free, + emit_bc_set_native_types, emit_bc_start_pass, emit_bc_end_pass, |