diff options
author | Sverker Eriksson <[email protected]> | 2015-06-03 16:19:30 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2015-06-15 14:13:13 +0200 |
commit | c09561dc51be736943a32862a41a3eaef2e41b83 (patch) | |
tree | 0ce32c8ed890f60b936fff4682c9bf5cfc5586ee /erts/emulator/beam/global.h | |
parent | eea59350ddc1f8c2d86e10f5d38f0cda2f9081f3 (diff) | |
download | otp-c09561dc51be736943a32862a41a3eaef2e41b83.tar.gz otp-c09561dc51be736943a32862a41a3eaef2e41b83.tar.bz2 otp-c09561dc51be736943a32862a41a3eaef2e41b83.zip |
erts: Yield in maps:merge
Diffstat (limited to 'erts/emulator/beam/global.h')
-rw-r--r-- | erts/emulator/beam/global.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/erts/emulator/beam/global.h b/erts/emulator/beam/global.h index 07806c823c..14d42599a1 100644 --- a/erts/emulator/beam/global.h +++ b/erts/emulator/beam/global.h @@ -817,7 +817,7 @@ do {\ UWord _pbytes = PSTACK_COUNT(s) * sizeof(PSTACK_TYPE);\ (dst)->pstart = erts_alloc(s.alloc_type,\ sizeof(PSTK_DEF_STACK(s)));\ - memcpy((dst)->pstart, s.pstart, _pbytes);\ + sys_memcpy((dst)->pstart, s.pstart, _pbytes);\ (dst)->psp = (dst)->pstart + _pbytes - sizeof(PSTACK_TYPE);\ (dst)->pend = (dst)->pstart + sizeof(PSTK_DEF_STACK(s));\ (dst)->alloc_type = s.alloc_type;\ @@ -838,6 +838,14 @@ do { \ ASSERT(s.psp < s.pend); \ } while (0) +#define PSTACK_DESTROY_SAVED(pstack)\ +do {\ + if ((pstack)->pstart) {\ + erts_free((pstack)->alloc_type, (pstack)->pstart);\ + (pstack)->pstart = NULL;\ + }\ +} while(0) + /* binary.c */ @@ -1126,6 +1134,9 @@ Sint erts_binary_set_loop_limit(Sint limit); /* external.c */ void erts_init_external(void); +/* erl_map.c */ +void erts_init_map(void); + /* erl_unicode.c */ void erts_init_unicode(void); Sint erts_unicode_set_loop_limit(Sint limit); |