summaryrefslogtreecommitdiff
path: root/erts/emulator/beam
diff options
context:
space:
mode:
authorRickard Green <rickard@erlang.org>2023-04-24 11:52:56 +0200
committerRickard Green <rickard@erlang.org>2023-04-24 11:52:56 +0200
commit17d5be464eb8f9f95c26ac9c92b040cdf8447fa0 (patch)
treebbee32b48ebd9eb749f2b1cc9237c321475cc037 /erts/emulator/beam
parentea65c2c9914f666a4834b543afe75f5e8c9e3a6c (diff)
parentd5b3b485541c062adccc49c4b6f3f67d1545e730 (diff)
downloaderlang-17d5be464eb8f9f95c26ac9c92b040cdf8447fa0.tar.gz
Merge branch 'maint'
* maint: [erts] Fix debug functionalty for monitors/links
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r--erts/emulator/beam/erl_monitor_link.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/erts/emulator/beam/erl_monitor_link.c b/erts/emulator/beam/erl_monitor_link.c
index 2c7b765520..0c1eef68f0 100644
--- a/erts/emulator/beam/erl_monitor_link.c
+++ b/erts/emulator/beam/erl_monitor_link.c
@@ -703,10 +703,15 @@ erts_debug_monitor_tree_destroying_foreach(ErtsMonitor *root,
void *arg,
void *vysp)
{
- void *tmp_vysp = erts_alloc(ERTS_ALC_T_ML_YIELD_STATE,
- sizeof(ErtsMonLnkYieldState));
+ void *tmp_vysp;
Sint reds;
- sys_memcpy(tmp_vysp, tmp_vysp, sizeof(ErtsMonLnkYieldState));
+ if (!vysp)
+ tmp_vysp = NULL;
+ else {
+ tmp_vysp = erts_alloc(ERTS_ALC_T_ML_YIELD_STATE,
+ sizeof(ErtsMonLnkYieldState));
+ sys_memcpy(tmp_vysp, tmp_vysp, sizeof(ErtsMonLnkYieldState));
+ }
do {
reds = ml_rbt_foreach_yielding((ErtsMonLnkNode *) root,
(ErtsMonLnkNodeFunc) func,
@@ -1338,10 +1343,15 @@ erts_debug_link_tree_destroying_foreach(ErtsLink *root,
void *arg,
void *vysp)
{
- void *tmp_vysp = erts_alloc(ERTS_ALC_T_ML_YIELD_STATE,
- sizeof(ErtsMonLnkYieldState));
+ void *tmp_vysp;
Sint reds;
- sys_memcpy(tmp_vysp, vysp, sizeof(ErtsMonLnkYieldState));
+ if (!vysp)
+ tmp_vysp = NULL;
+ else {
+ tmp_vysp = erts_alloc(ERTS_ALC_T_ML_YIELD_STATE,
+ sizeof(ErtsMonLnkYieldState));
+ sys_memcpy(tmp_vysp, vysp, sizeof(ErtsMonLnkYieldState));
+ }
do {
reds = ml_rbt_foreach_yielding((ErtsMonLnkNode *) root,
(ErtsMonLnkNodeFunc) func,