From Guy Decoux <200104191053.f3JArsH28644 / orsay1.moulon.inra.fr> > >>>>> "K" == K Kosako <kosako / sofnec.co.jp> writes: > K> In this method, only values are cleared without removing dyna-var objects > K> at the end of rb_yield_0, and used in the next rb_yield_0 call. > K> It is not a good method because the argument "acheck" of rb_yield_0 > K> is being referred to to do the decision of yield-call or proc/thread-call. > > I've quickly look at your patch, but do it solve this ? > > [0,1].each {|n| > print "n: #{n}\n" > case n > when 1 > a = 0 > print "a: #{a}\n" # => 0 > when 0 > b = 1 > print "a: #{a}\n" # => "a: " (a == nil) > print "b: #{b}\n" > end > } Here is the output. (patch was applied) n: 0 a: 0 n: 1 a: b: 1 It isn't confident whether this modification is right. ---- K.Kosako