[#31166] is_ruby_native_thread() — Masahiro Sakai (酒井政裕) <masahiro.sakai@...>

酒井です。

16 messages 2007/07/08
[#31269] Re: is_ruby_native_thread() — Nobuyoshi Nakada <nobu@...> 2007/07/21

なかだです。

[#31270] Re: is_ruby_native_thread() — Hidetoshi NAGAI <nagai@...> 2007/07/22

永井@知能.九工大です.

[#31298] retryの使い方 — eklerni <eklerni@...>

松尾といいます。

52 messages 2007/07/25
[#31299] Re: retryの使い方 — SASADA Koichi <ko1@...> 2007/07/26

 ささだです。

[#31300] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

松尾です、返信ありがとうございます。

[#31303] Re: retryの使い方 — Yugui <yugui@...> 2007/07/26

Yuguiといいます。

[#31306] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

松尾といいます。

[#31308] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/26

In article <46A909DD.1070405@for.mail-box.ne.jp>,

[#31310] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

Tanaka Akira さんは書きました:

[#31314] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/30

In article <46A92530.80507@for.mail-box.ne.jp>,

[#31315] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/30

Tanaka Akira さんは書きました:

[#31316] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/30

In article <46AD7A16.8080509@for.mail-box.ne.jp>,

[#31317] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/31

松尾です。

[#31381] Re: retryの使い方 — SASADA Koichi <ko1@...> 2007/08/12

 ささだです。

[#31422] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/15

まつもと ゆきひろです

[#31425] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/15

In article <E1ILDTi-0005T6-Be@x31>,

[#31426] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/15

まつもと ゆきひろです

[#31433] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/16

In article <E1ILKn6-0003Nv-0f@x31>,

[#31435] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/16

まつもと ゆきひろです

[#31447] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/16

In article <E1ILVN9-0006xJ-7I@x31>,

[#31450] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/17

In article <E1ILq4x-0002Bs-Lg@x31>,

[#31451] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/17

まつもと ゆきひろです

[ruby-dev:31266] Re: rb_eval_string("lambda{}") dumps core

From: Masahiro Sakai (酒井政裕) <masahiro.sakai@...>
Date: 2007-07-19 22:09:37 UTC
List: ruby-dev #31266
酒井です。

From: Masahiro Sakai (酒井政裕) <masahiro.sakai@gmail.com>
Date: Sun, 8 Jul 2007 00:30:39 +0900

> 酒井です。
> 
> 1.9で以下のような拡張ライブラリをrequireすると落ちるようです。
> 
>   #include <ruby.h>
>   void Init_foo(void)
>   {
>       rb_eval_string("lambda{}");
>   }
> 
> % ruby-19 -rfoo -ve ""
> ruby 1.9.0 (2007-07-07 patchlevel 0) [i686-linux]
> (eval):1: -- control frame ----------
> c:0005 p:---- s:0009 b:0009 l:000008 d:000008 CFUNC  :lambda
> c:0004 p:0007 s:0006 b:0006 l:0x1650 d:0x1688 EVAL   (eval):1
> c:0003 p:---- s:0005 b:0005 l:000004 d:000004 FINISH :initialize
> c:0002 p:-33955804 s:0003 b:0003 l:0x1650 d:0x1650 TOP    
> c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------ 
> ---------------------------
> DBG> : "(eval):1:in `/home/sakai/src/foo/foo.so'"

lfp_get_special_cref() で values が何故か 0x11 になっているのが原因だっ
たので、以下のようなパッチをあてることで回避できました。
正しい対処ではないと思いますが、

Index: insnhelper.ci
===================================================================
--- insnhelper.ci	(リビジョン 12814)
+++ insnhelper.ci	(作業コピー)
@@ -729,7 +729,7 @@
 lfp_get_special_cref(VALUE *lfp)
 {
     struct RValues *values;
-    if (((VALUE)(values = (void *)lfp[-1])) != Qnil && values->basic.klass) {
+    if (!rb_special_const_p((VALUE)(values = (void *)(lfp[-1]))) && values->basic.klass) {
 	return (NODE *)values->basic.klass;
     }
     else {

--
酒井 政裕 / Masahiro Sakai

In This Thread

Prev Next