[#7785] rb2c — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

28 messages 1999/09/02

[#7845] [Q] irb and SizedQueue — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

14 messages 1999/09/15

[ruby-dev:7909] Re: What is rb_eval_string_wrap

From: matz@... (Yukihiro Matsumoto)
Date: 1999-09-23 16:02:26 UTC
List: ruby-dev #7909
まつもと ゆきひろです

In message "[ruby-dev:7905] What is rb_eval_string_wrap"
    on 99/09/23, Masaki Suketa <CQN02273@nifty.ne.jp> writes:

|eval.c にある rb_eval_string_wrap は
|どのように使うのでしょうか?
|第二引数の使い方が良くわかりません.
|もう使われなくなった関数でしょうか?

rb_eval_string_wrap()は、無名モジュールを生成してそのコンテ
キストで文字列を評価します。ですから、グローバルネームスペー
スを汚染しません。

第2引数はevalの結果を得るためのintへのポインタを渡すようになっ
ていますが、現状ではこの引数にはあまり意味は無いので常に0を
渡してください。

あ、でもそれだとまずいことがあるな。がーん、バグだ。以下の修
正が必要そうです。現状のままお使いの場合には、かならずダミー
変数へのポインタを渡してください。

--- /tmp/eval.c	Wed Sep 22 00:00:48 1999
+++ eval.c	Fri Sep 24 00:01:48 1999
@@ -1181,9 +1185,9 @@
     POP_CLASS();
     if (state) {
 	*state = status;
-	if (status) {
-	    JUMP_TAG(status);
-	}
+    }
+    else if (status) {
+	JUMP_TAG(status);
     }
     return val;
 }

|後,別件ですが,README.EXT(.jp) に書いてある
|void ruby_init(int argc, char **argv, char **envp)
|は
|void ruby_init()
|ですよね?

そうですね。以前はこのような引数だったような気もしますが、ド
キュメントが現状に合わなくなってますね。修正します。

                                まつもと ゆきひろ /:|)

In This Thread

Prev Next