diff options
author | Björn-Egil Dahlberg <[email protected]> | 2016-07-27 17:00:32 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2016-08-01 11:00:22 +0200 |
commit | a9368b3c1ee78a3c83fcff83590a3d94ea4ddbe0 (patch) | |
tree | 5e5014f70548557e370eb546948b4e95e66ea57d /erts/emulator | |
parent | a2359927ca4e7c315e9849deec3375b1f2ae4170 (diff) | |
download | otp-a9368b3c1ee78a3c83fcff83590a3d94ea4ddbe0.tar.gz otp-a9368b3c1ee78a3c83fcff83590a3d94ea4ddbe0.tar.bz2 otp-a9368b3c1ee78a3c83fcff83590a3d94ea4ddbe0.zip |
erts: Fix literal size calculation in check_process_code
We want to know the total size of literals of all heap fragmens.
Diffstat (limited to 'erts/emulator')
-rw-r--r-- | erts/emulator/beam/beam_bif_load.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/erts/emulator/beam/beam_bif_load.c b/erts/emulator/beam/beam_bif_load.c index 15e878ba65..2a165bed00 100644 --- a/erts/emulator/beam/beam_bif_load.c +++ b/erts/emulator/beam/beam_bif_load.c @@ -873,12 +873,12 @@ check_process_code(Process* rp, Module* modp, Uint flags, int *redsp, int fcalls continue; { ErlHeapFragment *hf; - Uint lit_sz; + Uint lit_sz = 0; for (hf=hfrag; hf; hf = hf->next) { if (check_mod_funs(rp, &hfrag->off_heap, mod_start, mod_size)) return am_true; - lit_sz = hfrag_literal_size(&hf->mem[0], &hf->mem[hf->used_size], - literals, lit_bsize); + lit_sz += hfrag_literal_size(&hf->mem[0], &hf->mem[hf->used_size], + literals, lit_bsize); } if (lit_sz > 0) { ErlHeapFragment *bp = new_message_buffer(lit_sz); |