py: Make GC's STACK_SIZE definition a proper MICROPY_ config variable.
This commit is contained in:
parent
872a82970d
commit
fd40a9c38e
5
py/gc.c
5
py/gc.c
|
@ -47,7 +47,6 @@
|
||||||
|
|
||||||
#define WORDS_PER_BLOCK (4)
|
#define WORDS_PER_BLOCK (4)
|
||||||
#define BYTES_PER_BLOCK (WORDS_PER_BLOCK * BYTES_PER_WORD)
|
#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 byte *gc_alloc_table_start;
|
||||||
STATIC mp_uint_t gc_alloc_table_byte_len;
|
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 mp_uint_t *gc_pool_end;
|
||||||
|
|
||||||
STATIC int gc_stack_overflow;
|
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 mp_uint_t *gc_sp;
|
||||||
STATIC uint16_t gc_lock_depth;
|
STATIC uint16_t gc_lock_depth;
|
||||||
uint16_t gc_auto_collect_enabled;
|
uint16_t gc_auto_collect_enabled;
|
||||||
|
@ -196,7 +195,7 @@ bool gc_is_locked(void) {
|
||||||
if (ATB_GET_KIND(_block) == AT_HEAD) { \
|
if (ATB_GET_KIND(_block) == AT_HEAD) { \
|
||||||
/* an unmarked head, mark it, and push it on gc stack */ \
|
/* an unmarked head, mark it, and push it on gc stack */ \
|
||||||
ATB_HEAD_TO_MARK(_block); \
|
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; \
|
*gc_sp++ = _block; \
|
||||||
} else { \
|
} else { \
|
||||||
gc_stack_overflow = 1; \
|
gc_stack_overflow = 1; \
|
||||||
|
|
|
@ -51,6 +51,11 @@
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* Memory allocation policy */
|
/* 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
|
// Initial amount for lexer indentation level
|
||||||
#ifndef MICROPY_ALLOC_LEXER_INDENT_INIT
|
#ifndef MICROPY_ALLOC_LEXER_INDENT_INIT
|
||||||
#define MICROPY_ALLOC_LEXER_INDENT_INIT (10)
|
#define MICROPY_ALLOC_LEXER_INDENT_INIT (10)
|
||||||
|
|
Loading…
Reference in New Issue