[#3234] sample of TkFont class — NAGAI Hidetoshi <nagai@...>

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

52 messages 1998/07/08
[#3241] Re: sample of TkFont class — NAGAI Hidetoshi <nagai@...> 1998/07/09

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

[#3290] Re: sample of TkFont class — NAGAI Hidetoshi <nagai@...> 1998/07/15

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

[#3291] Re: sample of TkFont class — matz@... (Yukihiro Matsumoto) 1998/07/15

まつもと ゆきひろです

[#3307] Re: sample of TkFont class — NAGAI Hidetoshi <nagai@...> 1998/07/16

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

[#3309] Re: sample of TkFont class — matz@... (Yukihiro Matsumoto) 1998/07/16

まつもと ゆきひろです

[#3319] Re: sample of TkFont class — NAGAI Hidetoshi <nagai@...> 1998/07/16

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

[#3321] Re: sample of TkFont class — matz@... (Yukihiro Matsumoto) 1998/07/16

まつもと ゆきひろです

[#3324] Re: sample of TkFont class — NAGAI Hidetoshi <nagai@...> 1998/07/16

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

[#3367] Re: sample of TkFont class — Tadayoshi Funaba <tadf@...> 1998/07/22

ふなばです。

[#3369] Re: sample of TkFont class — ttate@... 1998/07/22

立石@JAISTです。

[#3370] Re: sample of TkFont class — Tadayoshi Funaba <tadf@...> 1998/07/22

ふなばです。

[#3371] Re: sample of TkFont class — ttate@... 1998/07/23

立石@JAISTです。

[#3292] exprimental release 1.1b9_31 (hopefully final) — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

20 messages 1998/07/15
[#3293] Re: exprimental release 1.1b9_31 (hopefully final) — Takahiro Maebashi <maebashi@...> 1998/07/15

前橋です。

[#3294] Re: exprimental release 1.1b9_31 (hopefully final) — matz@... (Yukihiro Matsumoto) 1998/07/15

まつもと ゆきひろです

[#3295] Re: exprimental release 1.1b9_31 (hopefully final) — Takahiro Maebashi <maebashi@...> 1998/07/15

前橋です。

[ruby-dev:3381] Re: [BUG] attr

From: matz@... (Yukihiro Matsumoto)
Date: 1998-07-23 04:19:15 UTC
List: ruby-dev #3381
まつもと ゆきひろです

In message "[ruby-dev:3373] [BUG] attr"
    on 98/07/23, WATANABE Tetsuya <tetsu@jpn.hp.com> writes:

|わたなべてつやです。
|
|1.1c0 で Linux 上で起きます。HP-UX だとエラーになります。
|
|次のような間違った記述なのですが、core してしまいます。

バグですね.パッチを付けておきます.

余談ですが,

|------------------------------
|class Vgp
|  @vg_opencount = 0
|  @num_lvols = 0
|  attr @vg_opencount
|  attr @num_lvols
|end
|
|j = Vgp.new
|
|exit
|------------------------------

というような間違いの直接的な原因は理解できないでもないですが
(undefとかaliasとか識別子をそのまま受け付けるのもあるから),
クラスレベルでインスタンス変数を使ってしまうっていうのはあり
がちな間違いだと思います.

--[強調]
Rubyではクラス定義のレベルとメソッド定義のレベルでは文脈が全
く独立です.インスタンス変数も別物です.
--

よく見掛ける間違いですので気を付けて下さい.なれればどうとい
うことは無いんですけどね.

--- eval.c	1998/07/22 03:00:38	1.1.1.2.2.74
+++ eval.c	1998/07/23 04:14:41
@@ -328,3 +328,3 @@
     char *buf;
-    ID attr, attreq, attriv;
+    ID attr, attriv;
     int noex;
@@ -346,6 +346,6 @@
     name = rb_id2name(id);
-    attr = rb_intern(name);
+    if (!name) {
+	ArgError("argument needs to be symbol or string");
+    }
     buf = ALLOCA_N(char,strlen(name)+2);
-    sprintf(buf, "%s=", name);
-    attreq = rb_intern(buf);
     sprintf(buf, "@%s", name);
@@ -353,6 +353,8 @@
     if (read) {
-	rb_add_method(klass, attr, NEW_IVAR(attriv), noex);
+	rb_add_method(klass, id, NEW_IVAR(attriv), noex);
     }
+    sprintf(buf, "%s=", name);
+    id = rb_intern(buf);
     if (write) {
-	rb_add_method(klass, attreq, NEW_ATTRSET(attriv), noex);
+	rb_add_method(klass, id, NEW_ATTRSET(attriv), noex);
     }

In This Thread