Add missing GC limit check to realloc with system allocator (#3279)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
This commit is contained in:
committed by
Robert Fancsik
parent
a8b627a80c
commit
3b7d254e6a
@@ -649,7 +649,15 @@ jmem_heap_realloc_block (void *ptr, /**< memory region to reallocate */
|
|||||||
JMEM_HEAP_STAT_ALLOC (new_size);
|
JMEM_HEAP_STAT_ALLOC (new_size);
|
||||||
return ret_block_p;
|
return ret_block_p;
|
||||||
#else /* ENABLED (JERRY_SYSTEM_ALLOCATOR) */
|
#else /* ENABLED (JERRY_SYSTEM_ALLOCATOR) */
|
||||||
JERRY_CONTEXT (jmem_heap_allocated_size) += (new_size - old_size);
|
const size_t required_size = new_size - old_size;
|
||||||
|
#if !ENABLED (JERRY_MEM_GC_BEFORE_EACH_ALLOC)
|
||||||
|
if (JERRY_CONTEXT (jmem_heap_allocated_size) + required_size >= JERRY_CONTEXT (jmem_heap_limit))
|
||||||
|
#endif /* !ENABLED (JERRY_MEM_GC_BEFORE_EACH_ALLOC) */
|
||||||
|
{
|
||||||
|
ecma_free_unused_memory (JMEM_PRESSURE_LOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
JERRY_CONTEXT (jmem_heap_allocated_size) += required_size;
|
||||||
|
|
||||||
while (JERRY_CONTEXT (jmem_heap_allocated_size) >= JERRY_CONTEXT (jmem_heap_limit))
|
while (JERRY_CONTEXT (jmem_heap_allocated_size) >= JERRY_CONTEXT (jmem_heap_limit))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user