[#11357] [PATCH] an analogue of `long long' — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

18 messages 2000/11/01
[#11358] Re: [PATCH] an analogue of `long long' — matz@... (Yukihiro Matsumoto) 2000/11/01

まつもと ゆきひろです

[#11364] Re: [PATCH] an analogue of `long long' — EGUCHI Osamu <eguchi@...> 2000/11/02

えぐち@エスアンドイー です。

[#11440] class Character (was: Ruby I18N) — Yasushi Shoji <yashi@...>

[ruby-dev:11428] からの続きですが、threadは切りました。

14 messages 2000/11/08
[#11442] Re: class Character (was: Ruby I18N) — TAKAHASHI Masayoshi <maki@...> 2000/11/08

高橋征義です。用語について。

[#11443] Re: class Character (was: Ruby I18N) — Yasushi Shoji <yashi@...> 2000/11/08

At Wed, 8 Nov 2000 20:44:55 +0900,

[#11520] A problem of Socket methods on Windows — OKA Toshiyuki <oka@...>

岡と申します。

22 messages 2000/11/15
[#11523] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11528] Re: A problem of Socket methods on Windows — matz@... (Yukihiro Matsumoto) 2000/11/15

まつもと ゆきひろです

[#11532] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11534] Re: A problem of Socket methods on Windows — OKA Toshiyuki <oka@...> 2000/11/15

岡です。

[#11535] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11538] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11662] IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org>

In article <E140cR3-0002ls-00@ev.netlab.zetabits.co.jp>,

22 messages 2000/11/28
[#11663] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/11/28

まつもと ゆきひろです

[#11664] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/28

In article <E140fxW-0002u9-00@ev.netlab.zetabits.co.jp>,

[#11665] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/28

In article <hvor93w5wb8.fsf@coulee.m17n.org>,

[#11669] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/29

In article <hvoofz05uwz.fsf@coulee.m17n.org>,

[#11672] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/11/29

まつもと ゆきひろです

[#11675] Re: IO (Re: fork problem?) — Koji Arai <JCA02266@...> 2000/11/30

新井です。

[#11677] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/12/01

まつもと ゆきひろです

[ruby-dev:11537] Re: method_added by attr

From: "Nobuyoshi.Nakada" <nobu.nakada@...>
Date: 2000-11-15 10:38:26 UTC
List: ruby-dev #11537
なかだです。

At Wed, 15 Nov 2000 14:45:22 +0900
Kenichi Komiya <komiya@ti.com> wrote:
> attrからmethod_addedがよばれた際に、メソッドキャッシュがクリアされてない
> ような気がします。以下のコードを実行するとmethod_added内でNameErrorが発
> 生します。

  Ruby コードを呼ぶ前にクリアしないとまずいですね。


diff -pruPX ./.excludes current/eval.c devel/eval.c
--- current/eval.c	Wed Nov  8 14:29:21 2000
+++ devel/eval.c	Wed Nov 15 19:33:20 2000
@@ -477,15 +477,15 @@ rb_attr(klass, id, read, write, ex)
     attriv = rb_intern(buf);
     if (read) {
 	rb_add_method(klass, id, NEW_IVAR(attriv), noex);
-	rb_funcall(klass, added, 1, ID2SYM(id));
 	rb_clear_cache_by_id(id);
+	rb_funcall(klass, added, 1, ID2SYM(id));
     }
     sprintf(buf, "%s=", name);
     id = rb_intern(buf);
     if (write) {
 	rb_add_method(klass, id, NEW_ATTRSET(attriv), noex);
-	rb_funcall(klass, added, 1, ID2SYM(id));
 	rb_clear_cache_by_id(id);
+	rb_funcall(klass, added, 1, ID2SYM(id));
     }
 }
 
@@ -2855,12 +2855,12 @@ rb_eval(self, n)
 		noex |= NOEX_UNDEF;
 	    }
 	    rb_add_method(ruby_class, node->nd_mid, node->nd_defn, noex);
+	    rb_clear_cache_by_id(node->nd_mid);
 	    if (scope_vmode == SCOPE_MODFUNC) {
 		rb_add_method(rb_singleton_class(ruby_class),
 			      node->nd_mid, node->nd_defn, NOEX_PUBLIC);
 		rb_funcall(ruby_class, singleton_added, 1, ID2SYM(node->nd_mid));
 	    }
-	    rb_clear_cache_by_id(node->nd_mid);
 	    if (FL_TEST(ruby_class, FL_SINGLETON)) {
 		rb_funcall(rb_iv_get(ruby_class, "__attached__"),
 			   singleton_added, 1, ID2SYM(node->nd_mid));
@@ -2900,8 +2900,8 @@ rb_eval(self, n)
 	    }
 	    rb_add_method(klass, node->nd_mid, node->nd_defn, 
 			  NOEX_PUBLIC|(body?body->nd_noex&NOEX_UNDEF:0));
-	    rb_funcall(recv, singleton_added, 1, ID2SYM(node->nd_mid));
 	    rb_clear_cache_by_id(node->nd_mid);
+	    rb_funcall(recv, singleton_added, 1, ID2SYM(node->nd_mid));
 	    result = Qnil;
 	}
 	break;
@@ -5374,8 +5374,8 @@ rb_mod_modfunc(argc, argv, module)
 	    rb_bug("undefined method `%s'; can't happen", rb_id2name(id));
 	}
 	rb_add_method(rb_singleton_class(module), id, body->nd_body, NOEX_PUBLIC);
-	rb_funcall(module, singleton_added, 1, ID2SYM(id));
 	rb_clear_cache_by_id(id);
+	rb_funcall(module, singleton_added, 1, ID2SYM(id));
     }
     return module;
 }


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦


In This Thread