diff --git a/jerry-core/ecma/base/ecma-gc.cpp b/jerry-core/ecma/base/ecma-gc.cpp index 21c1ab083..6e22dce57 100644 --- a/jerry-core/ecma/base/ecma-gc.cpp +++ b/jerry-core/ecma/base/ecma-gc.cpp @@ -580,14 +580,9 @@ ecma_try_to_give_back_some_memory (mem_try_give_memory_back_severity_t severity) ecma_gc_run (); } } - else if (severity == MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_MEDIUM - || severity == MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH) - { - ecma_gc_run (); - } else { - JERRY_ASSERT (severity == MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_CRITICAL); + JERRY_ASSERT (severity == MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH); /* Freeing as much memory as we currently can */ ecma_lcache_invalidate_all (); diff --git a/jerry-core/mem/mem-allocator.h b/jerry-core/mem/mem-allocator.h index cb70304e0..306c9a210 100644 --- a/jerry-core/mem/mem-allocator.h +++ b/jerry-core/mem/mem-allocator.h @@ -62,17 +62,15 @@ typedef uint16_t mem_cpointer_t; * Severity of a 'try give memory back' request * * The request are posted sequentially beginning from - * low to critical until enough memory is freed. + * low to high until enough memory is freed. * - * If not enough memory is freed upon a critical request + * If not enough memory is freed upon a high request * then the engine is shut down with ERR_OUT_OF_MEMORY. */ typedef enum { MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_LOW, /* 'low' severity */ - MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_MEDIUM, /* 'medium' severity */ MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH, /* 'high' severity */ - MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_CRITICAL /* 'critical' severity */ } mem_try_give_memory_back_severity_t; /** diff --git a/jerry-core/mem/mem-heap.cpp b/jerry-core/mem/mem-heap.cpp index d778db331..521c9c17a 100644 --- a/jerry-core/mem/mem-heap.cpp +++ b/jerry-core/mem/mem-heap.cpp @@ -531,7 +531,7 @@ mem_heap_alloc_block_try_give_memory_back (size_t size_in_bytes, /**< size of re VALGRIND_FREYA_CHECK_MEMPOOL_REQUEST; #ifdef MEM_GC_BEFORE_EACH_ALLOC - mem_run_try_to_give_memory_back_callbacks (MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_CRITICAL); + mem_run_try_to_give_memory_back_callbacks (MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH); #endif /* MEM_GC_BEFORE_EACH_ALLOC */ size_t chunks = mem_get_block_chunks_count_from_data_size (size_in_bytes); @@ -549,14 +549,14 @@ mem_heap_alloc_block_try_give_memory_back (size_t size_in_bytes, /**< size of re } for (mem_try_give_memory_back_severity_t severity = MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_LOW; - severity <= MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_CRITICAL; + severity <= MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH; severity = (mem_try_give_memory_back_severity_t) (severity + 1)) { mem_run_try_to_give_memory_back_callbacks (severity); data_space_p = mem_heap_alloc_block_internal (size_in_bytes, length_type, alloc_term); - if (data_space_p != NULL) + if (likely (data_space_p != NULL)) { VALGRIND_FREYA_MALLOCLIKE_SPACE (data_space_p, size_in_bytes); return data_space_p; diff --git a/jerry-core/mem/mem-poolman.cpp b/jerry-core/mem/mem-poolman.cpp index 239cbfa87..8ee38f5e6 100644 --- a/jerry-core/mem/mem-poolman.cpp +++ b/jerry-core/mem/mem-poolman.cpp @@ -536,7 +536,7 @@ uint8_t* __attr_always_inline___ mem_pools_alloc (void) { #ifdef MEM_GC_BEFORE_EACH_ALLOC - mem_run_try_to_give_memory_back_callbacks (MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_CRITICAL); + mem_run_try_to_give_memory_back_callbacks (MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH); #endif /* MEM_GC_BEFORE_EACH_ALLOC */ mem_check_pools (); diff --git a/jerry-core/vm/vm.cpp b/jerry-core/vm/vm.cpp index b981a1319..f5088993d 100644 --- a/jerry-core/vm/vm.cpp +++ b/jerry-core/vm/vm.cpp @@ -103,7 +103,7 @@ interp_mem_get_stats (mem_heap_stats_t *out_heap_stats_p, } /* Requesting to free as much memory as we currently can */ - ecma_try_to_give_back_some_memory (MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_CRITICAL); + ecma_try_to_give_back_some_memory (MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH); if (reset_peak_before) { diff --git a/tests/unit/test-heap.cpp b/tests/unit/test-heap.cpp index ae1f4b684..26671f4df 100644 --- a/tests/unit/test-heap.cpp +++ b/tests/unit/test-heap.cpp @@ -42,17 +42,9 @@ test_heap_give_some_memory_back (mem_try_give_memory_back_severity_t severity) { p = 8; } - else if (severity == MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_MEDIUM) - { - p = 4; - } - else if (severity == MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH) - { - p = 2; - } else { - JERRY_ASSERT (severity == MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_CRITICAL); + JERRY_ASSERT (severity == MEM_TRY_GIVE_MEMORY_BACK_SEVERITY_HIGH); p = 1; }