diff options
author | Sverker Eriksson <[email protected]> | 2015-12-03 15:34:14 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2015-12-07 18:02:52 +0100 |
commit | ce8279d6a48d41f9de577825844f499bb3084b96 (patch) | |
tree | 094be4e1fabf2eb19c9a747e687b49e79337f263 /erts/emulator/beam/erl_message.h | |
parent | 75ef9b7cae7533fb9be7953ac72f743b055d2a7a (diff) | |
download | otp-ce8279d6a48d41f9de577825844f499bb3084b96.tar.gz otp-ce8279d6a48d41f9de577825844f499bb3084b96.tar.bz2 otp-ce8279d6a48d41f9de577825844f499bb3084b96.zip |
erts: Fix bug for remote control message containing fat maps
that could cause the static factory to overflow
Fix: Introduce a new factory mode FACTORY_TMP
Diffstat (limited to 'erts/emulator/beam/erl_message.h')
-rw-r--r-- | erts/emulator/beam/erl_message.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_message.h b/erts/emulator/beam/erl_message.h index fbdf3fb0e2..92ba3e571c 100644 --- a/erts/emulator/beam/erl_message.h +++ b/erts/emulator/beam/erl_message.h @@ -58,7 +58,8 @@ typedef struct { FACTORY_CLOSED = 0, FACTORY_HALLOC, FACTORY_HEAP_FRAGS, - FACTORY_STATIC + FACTORY_STATIC, + FACTORY_TMP } mode; Process* p; Eterm* hp_start; @@ -75,6 +76,7 @@ void erts_factory_proc_init(ErtsHeapFactory*, Process*); void erts_factory_proc_prealloc_init(ErtsHeapFactory*, Process*, Sint size); void erts_factory_message_init(ErtsHeapFactory*, Process*, Eterm* hp, struct erl_heap_fragment*); void erts_factory_static_init(ErtsHeapFactory*, Eterm* hp, Uint size, ErlOffHeap*); +void erts_factory_tmp_init(ErtsHeapFactory*, Eterm* hp, Uint size, Uint32 atype); void erts_factory_dummy_init(ErtsHeapFactory*); Eterm* erts_produce_heap(ErtsHeapFactory*, Uint need, Uint xtra); |