diff options
Diffstat (limited to 'erts/emulator/beam/erl_message.c')
-rw-r--r-- | erts/emulator/beam/erl_message.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_message.c b/erts/emulator/beam/erl_message.c index cdd771ef7d..eb28774550 100644 --- a/erts/emulator/beam/erl_message.c +++ b/erts/emulator/beam/erl_message.c @@ -1805,6 +1805,15 @@ void erts_factory_undo(ErtsHeapFactory* factory) ERTS_HEAP_FRAG_SIZE(factory->heap_frags_saved->alloc_size)); } } + if (factory->message) { + ASSERT(factory->message->data.attached != ERTS_MSG_COMBINED_HFRAG); + ASSERT(!factory->message->data.heap_frag); + + /* Set the message to NIL in order for it not to be treated as + a distributed message by erts_cleanup_messages */ + factory->message->m[0] = NIL; + erts_cleanup_messages(factory->message); + } } break; |