lib/utils/pyexec: Condition-out GC calls from pyexec.

A port which uses lib/utils/pyexec.c but which does not enable garbage
collection should not need to implement the gc_collect function.

This patch also moves the gc_collect call to after printing the qstr
info.  Since qstrs cannot be collected it should not make any difference
to the printed statistics.
pull/1994/head
Colin Hogben 2016-04-18 23:09:25 +01:00 zatwierdzone przez Damien George
rodzic 97f88eebb6
commit 8aa3cbf153
2 zmienionych plików z 4 dodań i 5 usunięć

Wyświetl plik

@ -34,9 +34,6 @@ int main(int argc, char **argv) {
return 0; return 0;
} }
void gc_collect(void) {
}
mp_lexer_t *mp_lexer_new_from_file(const char *filename) { mp_lexer_t *mp_lexer_new_from_file(const char *filename) {
return NULL; return NULL;
} }

Wyświetl plik

@ -110,7 +110,6 @@ STATIC int parse_compile_execute(void *source, mp_parse_input_kind_t input_kind,
if ((exec_flags & EXEC_FLAG_ALLOW_DEBUGGING) && repl_display_debugging_info) { if ((exec_flags & EXEC_FLAG_ALLOW_DEBUGGING) && repl_display_debugging_info) {
mp_uint_t ticks = mp_hal_ticks_ms() - start; // TODO implement a function that does this properly mp_uint_t ticks = mp_hal_ticks_ms() - start; // TODO implement a function that does this properly
printf("took " UINT_FMT " ms\n", ticks); printf("took " UINT_FMT " ms\n", ticks);
gc_collect();
// qstr info // qstr info
{ {
mp_uint_t n_pool, n_qstr, n_str_data_bytes, n_total_bytes; mp_uint_t n_pool, n_qstr, n_str_data_bytes, n_total_bytes;
@ -118,8 +117,11 @@ STATIC int parse_compile_execute(void *source, mp_parse_input_kind_t input_kind,
printf("qstr:\n n_pool=" UINT_FMT "\n n_qstr=" UINT_FMT "\n n_str_data_bytes=" UINT_FMT "\n n_total_bytes=" UINT_FMT "\n", n_pool, n_qstr, n_str_data_bytes, n_total_bytes); printf("qstr:\n n_pool=" UINT_FMT "\n n_qstr=" UINT_FMT "\n n_str_data_bytes=" UINT_FMT "\n n_total_bytes=" UINT_FMT "\n", n_pool, n_qstr, n_str_data_bytes, n_total_bytes);
} }
// GC info #if MICROPY_ENABLE_GC
// run collection and print GC info
gc_collect();
gc_dump_info(); gc_dump_info();
#endif
} }
if (exec_flags & EXEC_FLAG_PRINT_EOF) { if (exec_flags & EXEC_FLAG_PRINT_EOF) {