aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/beam_bif_load.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2015-09-04 18:45:06 +0200
committerSverker Eriksson <[email protected]>2015-09-11 16:42:49 +0200
commitada8342bedf8d4b84d4c3c10fcfc7919e532fd8c (patch)
treefe32a650f4ec4f49b057249ba02aa8caec0c57a6 /erts/emulator/beam/beam_bif_load.c
parent1fd4809777931a4dc166fd9f1b552317a385cd62 (diff)
downloadotp-ada8342bedf8d4b84d4c3c10fcfc7919e532fd8c.tar.gz
otp-ada8342bedf8d4b84d4c3c10fcfc7919e532fd8c.tar.bz2
otp-ada8342bedf8d4b84d4c3c10fcfc7919e532fd8c.zip
erts: Add new allocator LITERAL
Diffstat (limited to 'erts/emulator/beam/beam_bif_load.c')
-rw-r--r--erts/emulator/beam/beam_bif_load.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/erts/emulator/beam/beam_bif_load.c b/erts/emulator/beam/beam_bif_load.c
index 11508a1b39..68689b8e7f 100644
--- a/erts/emulator/beam/beam_bif_load.c
+++ b/erts/emulator/beam/beam_bif_load.c
@@ -684,6 +684,9 @@ BIF_RETTYPE finish_after_on_load_2(BIF_ALIST_2)
erts_cleanup_funs_on_purge(code, end);
beam_catches_delmod(modp->curr.catches, code, modp->curr.code_length,
erts_active_code_ix());
+ if (code[MI_LITERALS_START]) {
+ erts_free(ERTS_ALC_T_LITERAL, (void *) code[MI_LITERALS_START]);
+ }
erts_free(ERTS_ALC_T_CODE, (void *) code);
modp->curr.code = NULL;
modp->curr.code_length = 0;
@@ -1019,6 +1022,9 @@ BIF_RETTYPE purge_module_1(BIF_ALIST_1)
beam_catches_delmod(modp->old.catches, code, modp->old.code_length,
code_ix);
decrement_refc(code);
+ if (code[MI_LITERALS_START]) {
+ erts_free(ERTS_ALC_T_LITERAL, (void *) code[MI_LITERALS_START]);
+ }
erts_free(ERTS_ALC_T_CODE, (void *) code);
modp->old.code = NULL;
modp->old.code_length = 0;