aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.h
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2016-08-31 15:37:56 +0200
committerRickard Green <[email protected]>2016-08-31 15:37:56 +0200
commit2652d2f9b9f58746b80786fe7e62ae36b09bc890 (patch)
tree50eecb885785c0209b39e795f733fc10ed6a3ee1 /erts/emulator/beam/erl_process.h
parent451eb69edbe6c1b2ed53bcac18babda57e5f964c (diff)
parentf36e430a1482ee91d7f8b5ff72477ee6882b876d (diff)
downloadotp-2652d2f9b9f58746b80786fe7e62ae36b09bc890.tar.gz
otp-2652d2f9b9f58746b80786fe7e62ae36b09bc890.tar.bz2
otp-2652d2f9b9f58746b80786fe7e62ae36b09bc890.zip
Merge branch 'rickard/mbuf_sz/OTP-13851' into maint
* rickard/mbuf_sz/OTP-13851: Ensure correct mbuf_sz value in process structure
Diffstat (limited to 'erts/emulator/beam/erl_process.h')
-rw-r--r--erts/emulator/beam/erl_process.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_process.h b/erts/emulator/beam/erl_process.h
index 109d66012a..3347a7a60e 100644
--- a/erts/emulator/beam/erl_process.h
+++ b/erts/emulator/beam/erl_process.h
@@ -1328,10 +1328,13 @@ ERTS_GLB_INLINE void erts_heap_frag_shrink(Process* p, Eterm* hp);
ERTS_GLB_INLINE void erts_heap_frag_shrink(Process* p, Eterm* hp)
{
ErlHeapFragment* hf = MBUF(p);
+ Uint sz;
ASSERT(hf!=NULL && (hp - hf->mem < hf->alloc_size));
- hf->used_size = hp - hf->mem;
+ sz = hp - hf->mem;
+ p->mbuf_sz -= hf->used_size - sz;
+ hf->used_size = sz;
}
#endif /* inline */