From: SASADA Koichi Date: 2009-02-17T05:40:59+09:00 Subject: [ruby-dev:38037] Re: [Bug #1143] ruby 1.9.1p0でensure節が実行されない  ささだです. Jirou Iizuka wrote:: > Bug #1143: ruby 1.9.1p0でensure節が実行されない > http://redmine.ruby-lang.org/issues/show/1143  ありがとうございます.バグでした.  具体的には,while/end では,break やら redo やらを行ったとき, while/end の外の ensure 節はそのときに実行する必要はないのですが,return も同様だと思ってしまった,というのが原因でした.return の場合はその場で ensure 節を実行する必要がある,と.  YARV では,最近の javac のように ensure 節をコピーしてくっつけるような 実装になっているのですが,その辺の処理のバグということになります.  というのはすぐに気づいたんですが,何しろ ensure 周りのコードは難しく て,どうなってんのか読んでもさっぱりわからなかったので時間がかかってしま いました. -- // SASADA Koichi at atdot dot net