aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_message.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2015-12-03 15:34:14 +0100
committerSverker Eriksson <[email protected]>2015-12-07 18:02:52 +0100
commitce8279d6a48d41f9de577825844f499bb3084b96 (patch)
tree094be4e1fabf2eb19c9a747e687b49e79337f263 /erts/emulator/beam/erl_message.h
parent75ef9b7cae7533fb9be7953ac72f743b055d2a7a (diff)
downloadotp-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.h4
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);