diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-08-18 05:21:34 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-08-18 05:21:34 +0000 |
commit | fb8c28d3903c6efa15f8b1d2842219666f72982f (patch) | |
tree | efc6e89b12bafc8970a74db1f8e9c8566ae9497f /vm_trace.c | |
parent | 54a470d09ea5bede6ca7a4ba70dd9ce345bfb3b5 (diff) |
merge revision(s) df317151a5b4e0c5a30fcc321a9dc6abad63f7ed: [Backport #16019]
should not free local hook_list here.
exec_hooks_postcheck() clean executed hook_list if it is needed.
list_exec is freed if there are no events and this list is local
event (connected to specific iseq). However, iseq keeps to point
this local hook_list, freed list. To prevent this situation,
do not free hook_list here even if it has no events.
This issue is reported by @joker1007.
https://twitter.com/joker1007/status/1153649170797830144
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_trace.c')
-rw-r--r-- | vm_trace.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/vm_trace.c b/vm_trace.c index 82c5249abc..f8205db4bb 100644 --- a/vm_trace.c +++ b/vm_trace.c @@ -198,9 +198,6 @@ clean_hooks(const rb_execution_context_t *ec, rb_hook_list_t *list) } else { /* local events */ - if (list->events == 0) { - ruby_xfree(list); - } } } |