summaryrefslogtreecommitdiff
path: root/erts/emulator/beam/erl_message.c
diff options
context:
space:
mode:
Diffstat (limited to 'erts/emulator/beam/erl_message.c')
-rw-r--r--erts/emulator/beam/erl_message.c9
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;