aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2015-03-20 17:43:48 +0100
committerSverker Eriksson <[email protected]>2015-03-20 17:43:48 +0100
commitc0d3f4cbb5775a9214366e0d9cb76847d69c3459 (patch)
tree0e6cedd8ab884fcd47a0dddbce9ffba6ed24f96c
parent54e1779b5a94bc2662e38fff18ad621228aa75c0 (diff)
parent10a1f3a2d5d9343bd4d2b8ec77c32ec18da21666 (diff)
downloadotp-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
-rw-r--r--erts/emulator/beam/external.c4
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;