diff options
author | Damien George <damien.p.george@gmail.com> | 2014-03-28 18:38:20 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-03-28 18:38:20 +0000 |
commit | 440f041525a01990827823d2fccd3c081ea92a14 (patch) | |
tree | 4686cb4f3367b165d809ae305f8455b60629f47a /py/emitglue.c | |
parent | 182c31a2085c89c722f188102603ce857696de11 (diff) | |
download | micropython-440f041525a01990827823d2fccd3c081ea92a14.tar.gz micropython-440f041525a01990827823d2fccd3c081ea92a14.zip |
py: Fix bugs with debugging output.
show_bc now decodes the prelude correctly. Moved WRITE_FILE stuff from
runtime.c to emitglue.c.
Addresses issue #385.
Diffstat (limited to 'py/emitglue.c')
-rw-r--r-- | py/emitglue.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/py/emitglue.c b/py/emitglue.c index 0ab9090924..ed816a5161 100644 --- a/py/emitglue.c +++ b/py/emitglue.c @@ -1,6 +1,6 @@ // This code glues the code emitters to the runtime. -#include <stdlib.h> +#include <stdio.h> #include <assert.h> #include "misc.h" @@ -10,6 +10,7 @@ #include "runtime0.h" #include "runtime.h" #include "emitglue.h" +#include "bc.h" #if 0 // print debugging info #define DEBUG_PRINT (1) @@ -51,13 +52,27 @@ STATIC machine_uint_t unique_codes_alloc = 0; STATIC mp_code_t *unique_codes = NULL; STATIC uint next_unique_code_id; +#ifdef WRITE_CODE +FILE *fp_write_code = NULL; +#endif + void mp_emit_glue_init(void) { next_unique_code_id = 0; unique_codes_alloc = 0; unique_codes = NULL; + +#ifdef WRITE_CODE + fp_write_code = fopen("out-code", "wb"); +#endif } void mp_emit_glue_deinit(void) { +#ifdef WRITE_CODE + if (fp_write_code != NULL) { + fclose(fp_write_code); + } +#endif + m_del(mp_code_t, unique_codes, unique_codes_alloc); } |