*tidied the memory pool when got a NEW command.
This commit is contained in:
parent
6be1d905db
commit
ec897a3281
Binary file not shown.
22
shell/main.c
22
shell/main.c
@ -188,15 +188,17 @@ static int _cmp_size_t(const void* l, const void* r) {
|
|||||||
else return 0;
|
else return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _tidy_mem_pool(void) {
|
static void _tidy_mem_pool(bool_t force) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
char* s = 0;
|
char* s = 0;
|
||||||
|
|
||||||
if(_POOL_THRESHOLD_COUNT > 0 && in_pool_count < _POOL_THRESHOLD_COUNT)
|
if(!force) {
|
||||||
return;
|
if(_POOL_THRESHOLD_COUNT > 0 && in_pool_count < _POOL_THRESHOLD_COUNT)
|
||||||
|
return;
|
||||||
|
|
||||||
if(_POOL_THRESHOLD_BYTES > 0 && in_pool_bytes < _POOL_THRESHOLD_BYTES)
|
if(_POOL_THRESHOLD_BYTES > 0 && in_pool_bytes < _POOL_THRESHOLD_BYTES)
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(!pool_count)
|
if(!pool_count)
|
||||||
return;
|
return;
|
||||||
@ -360,7 +362,7 @@ static void _push_mem(char* p) {
|
|||||||
_POOL_NODE_NEXT(p) = pl->stack;
|
_POOL_NODE_NEXT(p) = pl->stack;
|
||||||
pl->stack = p;
|
pl->stack = p;
|
||||||
|
|
||||||
_tidy_mem_pool();
|
_tidy_mem_pool(false);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -649,9 +651,15 @@ static void _clear_screen(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int _new_program(void) {
|
static int _new_program(void) {
|
||||||
|
int result = 0;
|
||||||
|
|
||||||
_clear_code();
|
_clear_code();
|
||||||
|
|
||||||
return mb_reset(&bas, false);
|
result = mb_reset(&bas, false);
|
||||||
|
|
||||||
|
_tidy_mem_pool(true);
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _list_program(const char* sn, const char* cn) {
|
static void _list_program(const char* sn, const char* cn) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user