diff options
author | Rickard Green <[email protected]> | 2017-01-17 12:30:36 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2017-01-17 12:30:36 +0100 |
commit | 6db6cd94682d05eddbfa8b712419e70576d20846 (patch) | |
tree | e4038e914b1b262d3b63ebe78a803186bdc721d2 /erts/emulator/beam/erl_process.c | |
parent | a44947369f44cb334ca45dbecca2e3f878af8229 (diff) | |
parent | 5de2d73abd5d369676e43acd17a9d9db9795ccd5 (diff) | |
download | otp-6db6cd94682d05eddbfa8b712419e70576d20846.tar.gz otp-6db6cd94682d05eddbfa8b712419e70576d20846.tar.bz2 otp-6db6cd94682d05eddbfa8b712419e70576d20846.zip |
Merge branch 'rickard/abandoned-heap-bugs' into maint
OTP-14135
* rickard/abandoned-heap-bugs:
Fix memory leak of temporary heap
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r-- | erts/emulator/beam/erl_process.c | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c index 6affbd794c..41741764e8 100644 --- a/erts/emulator/beam/erl_process.c +++ b/erts/emulator/beam/erl_process.c @@ -11969,7 +11969,6 @@ erts_cleanup_empty_process(Process* p) static void delete_process(Process* p) { - Eterm *heap; ErtsPSD *psd; struct saved_calls *scb; process_breakpoint_time_t *pbt; @@ -12024,13 +12023,8 @@ delete_process(Process* p) hipe_delete_process(&p->hipe); #endif - heap = p->abandoned_heap ? p->abandoned_heap : p->heap; + erts_deallocate_young_generation(p); -#ifdef DEBUG - sys_memset(heap, DEBUG_BAD_BYTE, p->heap_sz*sizeof(Eterm)); -#endif - - ERTS_HEAP_FREE(ERTS_ALC_T_HEAP, (void*) heap, p->heap_sz*sizeof(Eterm)); if (p->old_heap != NULL) { #ifdef DEBUG @@ -12042,16 +12036,6 @@ delete_process(Process* p) (p->old_hend-p->old_heap)*sizeof(Eterm)); } - /* - * Free all pending message buffers. - */ - if (p->mbuf != NULL) { - free_message_buffer(p->mbuf); - } - - if (p->msg_frag) - erts_cleanup_messages(p->msg_frag); - erts_erase_dicts(p); /* free all pending messages */ |