diff options
author | Sverker Eriksson <[email protected]> | 2015-03-20 17:43:48 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2015-03-20 17:43:48 +0100 |
commit | c0d3f4cbb5775a9214366e0d9cb76847d69c3459 (patch) | |
tree | 0e6cedd8ab884fcd47a0dddbce9ffba6ed24f96c /erts | |
parent | 54e1779b5a94bc2662e38fff18ad621228aa75c0 (diff) | |
parent | 10a1f3a2d5d9343bd4d2b8ec77c32ec18da21666 (diff) | |
download | otp-c0d3f4cbb5775a9214366e0d9cb76847d69c3459.tar.gz otp-c0d3f4cbb5775a9214366e0d9cb76847d69c3459.tar.bz2 otp-c0d3f4cbb5775a9214366e0d9cb76847d69c3459.zip |
Merge branch 'sverk/dec_term-bin-overhead/OTP-12554'
* sverk/dec_term-bin-overhead/OTP-12554:
erts: Add missing binary offheap overhead in binary_to_term
Diffstat (limited to 'erts')
-rw-r--r-- | erts/emulator/beam/external.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/erts/emulator/beam/external.c b/erts/emulator/beam/external.c index 458ebd8aa0..82c60840e5 100644 --- a/erts/emulator/beam/external.c +++ b/erts/emulator/beam/external.c @@ -3460,6 +3460,7 @@ dec_term_atom_common: pb->size = n; pb->next = off_heap->first; off_heap->first = (struct erl_off_heap_header*)pb; + OH_OVERHEAD(off_heap, pb->size / sizeof(Eterm)); pb->val = dbin; pb->bytes = (byte*) dbin->orig_bytes; pb->flags = 0; @@ -3511,6 +3512,7 @@ dec_term_atom_common: pb->size = n; pb->next = off_heap->first; off_heap->first = (struct erl_off_heap_header*)pb; + OH_OVERHEAD(off_heap, pb->size / sizeof(Eterm)); pb->val = dbin; pb->bytes = (byte*) dbin->orig_bytes; pb->flags = 0; @@ -3830,6 +3832,7 @@ dec_term_atom_common: hp += PROC_BIN_SIZE; pb->next = off_heap->first; off_heap->first = (struct erl_off_heap_header*)pb; + OH_OVERHEAD(off_heap, pb->size / sizeof(Eterm)); pb->flags = 0; *objp = make_binary(pb); break; @@ -3847,6 +3850,7 @@ dec_term_atom_common: hp += PROC_BIN_SIZE; pb->next = off_heap->first; off_heap->first = (struct erl_off_heap_header*)pb; + OH_OVERHEAD(off_heap, pb->size / sizeof(Eterm)); pb->flags = 0; sub = (ErlSubBin*)hp; |