diff options
author | Damien George <damien.p.george@gmail.com> | 2015-01-01 22:04:46 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2015-01-01 22:04:46 +0000 |
commit | fd40a9c38e7e15850b8802fb9845dc4ea423f53b (patch) | |
tree | 8198a6f42077515e08855446f4ae42559aa5f725 /py | |
parent | 872a82970d0caa97ed5e7751d6d7b6a29b8d4fce (diff) | |
download | micropython-fd40a9c38e7e15850b8802fb9845dc4ea423f53b.tar.gz micropython-fd40a9c38e7e15850b8802fb9845dc4ea423f53b.zip |
py: Make GC's STACK_SIZE definition a proper MICROPY_ config variable.
Diffstat (limited to 'py')
-rw-r--r-- | py/gc.c | 5 | ||||
-rw-r--r-- | py/mpconfig.h | 5 |
2 files changed, 7 insertions, 3 deletions
@@ -47,7 +47,6 @@ #define WORDS_PER_BLOCK (4) #define BYTES_PER_BLOCK (WORDS_PER_BLOCK * BYTES_PER_WORD) -#define STACK_SIZE (64) // tunable; minimum is 1 STATIC byte *gc_alloc_table_start; STATIC mp_uint_t gc_alloc_table_byte_len; @@ -62,7 +61,7 @@ STATIC mp_uint_t *gc_pool_start = (void*)4; STATIC mp_uint_t *gc_pool_end; STATIC int gc_stack_overflow; -STATIC mp_uint_t gc_stack[STACK_SIZE]; +STATIC mp_uint_t gc_stack[MICROPY_ALLOC_GC_STACK_SIZE]; STATIC mp_uint_t *gc_sp; STATIC uint16_t gc_lock_depth; uint16_t gc_auto_collect_enabled; @@ -196,7 +195,7 @@ bool gc_is_locked(void) { if (ATB_GET_KIND(_block) == AT_HEAD) { \ /* an unmarked head, mark it, and push it on gc stack */ \ ATB_HEAD_TO_MARK(_block); \ - if (gc_sp < &gc_stack[STACK_SIZE]) { \ + if (gc_sp < &gc_stack[MICROPY_ALLOC_GC_STACK_SIZE]) { \ *gc_sp++ = _block; \ } else { \ gc_stack_overflow = 1; \ diff --git a/py/mpconfig.h b/py/mpconfig.h index bbc791c0b7..e3270bd13f 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -51,6 +51,11 @@ /*****************************************************************************/ /* Memory allocation policy */ +// Number of words allocated (in BSS) to the GC stack (minimum is 1) +#ifndef MICROPY_ALLOC_GC_STACK_SIZE +#define MICROPY_ALLOC_GC_STACK_SIZE (64) +#endif + // Initial amount for lexer indentation level #ifndef MICROPY_ALLOC_LEXER_INDENT_INIT #define MICROPY_ALLOC_LEXER_INDENT_INIT (10) |