[#8824] [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro)

ごとけんです

38 messages 2000/01/05
[#8839] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8842] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8843] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8844] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8846] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8847] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8893] Re: [ruby-list:20142] Re: Range expansion? — Akinori MUSHA aka knu <knu@...>

 knuです。ruby-listから舞台を移しました。

13 messages 2000/01/09

[#8980] 1.4.3 patch for near-future *BSD IPv6 support — Jun-ichiro itojun Hagino <itojun@...>

近い将来の{Net,Free,Open}BSDにはKAME IPv6 stackが統合されています。

17 messages 2000/01/20
[#8981] Re: 1.4.3 patch for near-future *BSD IPv6 support — Jun-ichiro itojun Hagino <itojun@...> 2000/01/20

> それから、

[ruby-dev:8941] [BUG] recycle the ruby_dyna_vars

From: Koji Arai <JCA02266@...>
Date: 2000-01-16 19:55:00 UTC
List: ruby-dev #8941
新井です。

バグ報告(ruby-1.5.0)です。
以下のコードで、2回目の p x がnilを表示します。

#!/usr/local/bin/ruby

loop {|x|
  x = 1

  v = 1 if nil

  v = 1
  loop {break}
  p x
  p x

  break
}
__END__

ruby 1.5.0 (2000-01-08) [i586-linux]
1
nil

どうやら、loop {break}で、ruby_dyna_vars が、freelistに入れ
られているようです。

修正してみましたが、ちょっとズルイ気がします。より良い修正方
法があれば教えてください。

ruby_dyna_vars->id == 0なエントリの意味もついでに教えていた
だければうれしいです。

(スコープの区切りってことかな?だとすると、2番目のv=1で
dvar_asgn_push()が呼ばれるような修正をしないといけない??)

Index: eval.c
===================================================================
RCS file: /home/cvs/ruby/eval.c,v
retrieving revision 1.24
diff -u -p -u -r1.24 eval.c
--- eval.c	2000/01/05 04:36:59	1.24
+++ eval.c	2000/01/16 19:46:00
@@ -3336,7 +3336,7 @@ rb_yield_0(val, self, klass, acheck)
 	do {
 	    rb_gc_force_recycle((VALUE)vars);
 	    vars = vars->next;
-	} while (vars && vars->id != 0);
+	} while (vars && vars->id != 0 && vars != block->d_vars);
     }
     POP_VARS();
     ruby_block = block;

--
新井康司 (Koji Arai)

In This Thread

Prev Next