* thread.c (exec_recursive): rb_catch_protect() uses `int*` as
  well as rb_protect.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2017-06-23 07:53:07 +00:00
Родитель 2108e55c0b
Коммит 769ef81ae3
1 изменённых файлов: 2 добавлений и 2 удалений

Просмотреть файл

@ -4689,11 +4689,10 @@ exec_recursive(VALUE (*func) (VALUE, VALUE, int), VALUE obj, VALUE pairid, VALUE
return (*func)(obj, arg, TRUE);
}
else {
enum ruby_tag_type state;
p.func = func;
if (outermost) {
int state;
recursive_push(p.list, ID2SYM(recursive_key), 0);
recursive_push(p.list, p.objid, p.pairid);
result = rb_catch_protect(p.list, exec_recursive_i, (VALUE)&p, &state);
@ -4705,6 +4704,7 @@ exec_recursive(VALUE (*func) (VALUE, VALUE, int), VALUE obj, VALUE pairid, VALUE
}
}
else {
enum ruby_tag_type state;
volatile VALUE ret = Qundef;
recursive_push(p.list, p.objid, p.pairid);
PUSH_TAG();