diff options
author | Lukas Larsson <[email protected]> | 2018-12-20 10:10:51 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2018-12-20 10:10:51 +0100 |
commit | 58d4bef716136bb1681fcdd0c8502d681ccd9cd3 (patch) | |
tree | fc64c1725937b7967bd1163e9e51cb8b0ea41a1a /erts/emulator/beam/erl_gc.c | |
parent | 9aac178d30c5bad940e68a7eb8a36596df5ed903 (diff) | |
parent | 27ff974bfa155ad31dcdc338d7fecf36b08a0516 (diff) | |
download | otp-58d4bef716136bb1681fcdd0c8502d681ccd9cd3.tar.gz otp-58d4bef716136bb1681fcdd0c8502d681ccd9cd3.tar.bz2 otp-58d4bef716136bb1681fcdd0c8502d681ccd9cd3.zip |
Merge branch 'lukas/erts/fix-seq_trace-reset_trace/OTP-15490' into maint
* lukas/erts/fix-seq_trace-reset_trace/OTP-15490:
erts: Fix seq_trace:reset_trace dirty gc bug
erts: Use sys_memcpy in copy_one_frag
Diffstat (limited to 'erts/emulator/beam/erl_gc.c')
-rw-r--r-- | erts/emulator/beam/erl_gc.c | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/erts/emulator/beam/erl_gc.c b/erts/emulator/beam/erl_gc.c index cf44640f12..3a50b294d1 100644 --- a/erts/emulator/beam/erl_gc.c +++ b/erts/emulator/beam/erl_gc.c @@ -2438,27 +2438,9 @@ erts_copy_one_frag(Eterm** hpp, ErlOffHeap* off_heap, cpy_words: ASSERT(sz >= cpy_sz); sz -= cpy_sz; - while (cpy_sz >= 8) { - cpy_sz -= 8; - *hp++ = *fhp++; - *hp++ = *fhp++; - *hp++ = *fhp++; - *hp++ = *fhp++; - *hp++ = *fhp++; - *hp++ = *fhp++; - *hp++ = *fhp++; - *hp++ = *fhp++; - } - switch (cpy_sz) { - case 7: *hp++ = *fhp++; - case 6: *hp++ = *fhp++; - case 5: *hp++ = *fhp++; - case 4: *hp++ = *fhp++; - case 3: *hp++ = *fhp++; - case 2: *hp++ = *fhp++; - case 1: *hp++ = *fhp++; - default: break; - } + sys_memcpy(hp, fhp, cpy_sz * sizeof(Eterm)); + hp += cpy_sz; + fhp += cpy_sz; if (oh) { /* Add to offheap list */ oh->next = off_heap->first; |