[#17017] 標準添付案 — Kazuhiro NISHIYAMA <zn@...>

西山和広です。

21 messages 2002/05/08
[#17019] Re: 標準添付案 — "Akinori MUSHA" <knu@...> 2002/05/08

At Wed, 8 May 2002 19:50:17 +0900,

[#17021] Re: 標準添付案 — GOTO Kentaro <gotoken@...> 2002/05/08

At Wed, 8 May 2002 22:45:06 +0900,

[#17031] double acosh — WATANABE Hirofumi <eban@...>

わたなべです。

25 messages 2002/05/10
[#17032] Re: double acosh — nobu.nakada@... 2002/05/10

なかだです。

[#17033] Re: double acosh — WATANABE Hirofumi <eban@...> 2002/05/10

わたなべです。

[#17036] Re: double acosh — matz@... (Yukihiro Matsumoto) 2002/05/10

まつもと ゆきひろです

[#17039] Re: double acosh — WATANABE Hirofumi <eban@...> 2002/05/10

わたなべです。

[#17134] argv[0] — Tanaka Akira <akr@...17n.org>

ふと ruby インタプリタの C における argv[0] を知りたくなったんですが、

23 messages 2002/05/18
[#17139] Re: argv[0] — matz@... (Yukihiro Matsumoto) 2002/05/18

まつもと ゆきひろです

[#17144] Re: msvcrt — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

18 messages 2002/05/19

[#17179] コマンドラインオプションの順序制約 — Kazuhiro NISHIYAMA <zn@...>

西山和広です。

13 messages 2002/05/22
[#17181] Re: コマンドラインオプションの順序制約 — matz@... (Yukihiro Matsumoto) 2002/05/22

まつもと ゆきひろです

[#17228] Re: [ruby-list:35305] Re: ((1.2)..(3.4)).to_a — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

28 messages 2002/05/30

[ruby-dev:17006] Re: strict prototype for c++

From: "Akinori MUSHA" <knu@...>
Date: 2002-05-03 18:29:09 UTC
List: ruby-dev #17006
At Fri, 3 May 2002 05:46:00 +0900,
Takaaki Tateishi wrote:
> At Fri, 3 May 2002 04:43:10 +0900,
> >  他の関数と同様に
> > 
> > void rb_gc_mark_maybe _((VALUE));
> > void rb_gc_mark _((VALUE));
> > 
> > でいいんじゃないでしょうか。1.7 でもそうなっているようです。
> 
> はい,もちろんその方がよいと思います.以前にも同様の議論があり,
> [ruby-dev:13972] を受けての意見です.

 そうかあ。確かにバグではないけど、各種プラットフォーム・処理系
対応の一環と考えれば、安定版にも適用していいと思いますけどね。
(前回はあれで十分だった)

> rubyをコンパイルするときにはrb_gc_mark()を使って,拡張ライブラリ
> で使う(C++で使われる)場合にはrb_gc_mark(VALUE)を使えばいいのでは
> ないかと思ったためです.
> これならとりあえずeval.c,gc.cなどに手を加えなくて済むと思います.

 「C++だから」という条件はどうにも気持ちが悪いですね。 ;)

 さっと作業したところ、添付のように30行くらい直せばwarningは抑制
できました。もしこれでよければ、(まつもとさんにお手間は取らせず)
私が commit しますが、どうでしょうか?

-- 
                     /
                    /__  __            Akinori.org / MUSHA.org
                   / )  )  ) )  /     FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ /  ( (__(  @ iDaemons.org / and.or.jp

"Somewhere out of a memory.. of lighted streets on quiet nights.."

Index: intern.h
===================================================================
RCS file: /src/ruby/intern.h,v
retrieving revision 1.35.2.19
diff -u -r1.35.2.19 intern.h
--- intern.h	2002/03/07 11:19:28	1.35.2.19
+++ intern.h	2002/05/03 18:03:49
@@ -189,8 +189,8 @@
 void rb_gc_mark_locations _((VALUE*, VALUE*));
 void rb_mark_tbl _((struct st_table*));
 void rb_mark_hash _((struct st_table*));
-void rb_gc_mark_maybe();
-void rb_gc_mark();
+void rb_gc_mark_maybe _((VALUE));
+void rb_gc_mark _((VALUE));
 void rb_gc_force_recycle _((VALUE));
 void rb_gc _((void));
 char *rb_source_filename _((const char *));
Index: eval.c
===================================================================
RCS file: /src/ruby/eval.c,v
retrieving revision 1.137.2.111
diff -u -r1.137.2.111 eval.c
--- eval.c	2002/05/01 09:37:57	1.137.2.111
+++ eval.c	2002/05/03 18:03:50
@@ -5849,12 +5849,12 @@
 
     link = end_procs;
     while (link) {
-	rb_gc_mark(link->data);
+	rb_gc_mark((VALUE)link->data);
 	link = link->next;
     }
     link = ephemeral_end_procs;
     while (link) {
-	rb_gc_mark(link->data);
+	rb_gc_mark((VALUE)link->data);
 	link = link->next;
     }
     /* static global mark */
@@ -6081,14 +6081,14 @@
 {
     while (data) {
 	rb_gc_mark_frame(&data->frame);
-	rb_gc_mark(data->scope);
-	rb_gc_mark(data->var);
-	rb_gc_mark(data->body);
-	rb_gc_mark(data->self);
-	rb_gc_mark(data->dyna_vars);
-	rb_gc_mark(data->klass);
-	rb_gc_mark(data->tag);
-	rb_gc_mark(data->wrapper);
+	rb_gc_mark((VALUE)data->scope);
+	rb_gc_mark((VALUE)data->var);
+	rb_gc_mark((VALUE)data->body);
+	rb_gc_mark((VALUE)data->self);
+	rb_gc_mark((VALUE)data->dyna_vars);
+	rb_gc_mark((VALUE)data->klass);
+	rb_gc_mark((VALUE)data->tag);
+	rb_gc_mark((VALUE)data->wrapper);
 	data = data->prev;
     }
 }
@@ -6611,7 +6611,7 @@
     rb_gc_mark(data->oklass);
     rb_gc_mark(data->klass);
     rb_gc_mark(data->recv);
-    rb_gc_mark(data->body);
+    rb_gc_mark((VALUE)data->body);
 }
 
 static VALUE
@@ -7147,10 +7147,10 @@
 
     rb_gc_mark(th->klass);
     rb_gc_mark(th->wrapper);
-    rb_gc_mark(th->cref);
+    rb_gc_mark((VALUE)th->cref);
 
-    rb_gc_mark(th->scope);
-    rb_gc_mark(th->dyna_vars);
+    rb_gc_mark((VALUE)th->scope);
+    rb_gc_mark((VALUE)th->dyna_vars);
     rb_gc_mark(th->errinfo);
     rb_gc_mark(th->last_line);
     rb_gc_mark(th->last_match);
Index: gc.c
===================================================================
RCS file: /src/ruby/gc.c,v
retrieving revision 1.48.2.22
diff -u -r1.48.2.22 gc.c
--- gc.c	2002/03/07 11:19:28	1.48.2.22
+++ gc.c	2002/05/03 18:03:50
@@ -476,7 +476,7 @@
 
 void
 rb_gc_mark_maybe(obj)
-    void *obj;
+    VALUE obj;
 {
     if (is_pointer_to_heap(obj)) {
 	rb_gc_mark(obj);
@@ -485,7 +485,7 @@
 
 void
 rb_gc_mark(ptr)
-    void *ptr;
+    VALUE ptr;
 {
     register RVALUE *obj = RANY(ptr);
 
@@ -517,7 +517,7 @@
 	  case NODE_MASGN:
 	  case NODE_RESCUE:
 	  case NODE_RESBODY:
-	    rb_gc_mark(obj->as.node.u2.node);
+	    rb_gc_mark((VALUE)obj->as.node.u2.node);
 	    /* fall through */
 	  case NODE_BLOCK:	/* 1,3 */
 	  case NODE_ARRAY:
@@ -531,7 +531,7 @@
 	  case NODE_CALL:
 	  case NODE_DEFS:
 	  case NODE_OP_ASGN1:
-	    rb_gc_mark(obj->as.node.u1.node);
+	    rb_gc_mark((VALUE)obj->as.node.u1.node);
 	    /* fall through */
 	  case NODE_SUPER:	/* 3 */
 	  case NODE_FCALL:
@@ -554,7 +554,7 @@
 	  case NODE_MATCH3:
 	  case NODE_OP_ASGN_OR:
 	  case NODE_OP_ASGN_AND:
-	    rb_gc_mark(obj->as.node.u1.node);
+	    rb_gc_mark((VALUE)obj->as.node.u1.node);
 	    /* fall through */
 	  case NODE_METHOD:	/* 2 */
 	  case NODE_NOT:
@@ -590,7 +590,7 @@
 	  case NODE_SCOPE:	/* 2,3 */
 	  case NODE_CLASS:
 	  case NODE_BLOCK_PASS:
-	    rb_gc_mark(obj->as.node.u3.node);
+	    rb_gc_mark((VALUE)obj->as.node.u3.node);
 	    obj = RANY(obj->as.node.u2.node);
 	    goto Top;
 
@@ -628,10 +628,10 @@
 
 	  default:
 	    if (is_pointer_to_heap(obj->as.node.u1.node)) {
-		rb_gc_mark(obj->as.node.u1.node);
+		rb_gc_mark((VALUE)obj->as.node.u1.node);
 	    }
 	    if (is_pointer_to_heap(obj->as.node.u2.node)) {
-		rb_gc_mark(obj->as.node.u2.node);
+		rb_gc_mark((VALUE)obj->as.node.u2.node);
 	    }
 	    if (is_pointer_to_heap(obj->as.node.u3.node)) {
 		obj = RANY(obj->as.node.u3.node);
@@ -745,7 +745,7 @@
 	    p = heaps[i]; pend = p + heaps_limits[i];
 	    while (p < pend) {
 		if (!(p->as.basic.flags&FL_MARK) && BUILTIN_TYPE(p) == T_NODE)
-		    rb_gc_mark(p);
+		    rb_gc_mark((VALUE)p);
 		p++;
 	    }
 	}
@@ -1041,8 +1041,8 @@
 	}
     }
     rb_gc_mark(ruby_class);
-    rb_gc_mark(ruby_scope);
-    rb_gc_mark(ruby_dyna_vars);
+    rb_gc_mark((VALUE)ruby_scope);
+    rb_gc_mark((VALUE)ruby_dyna_vars);
     if (finalizer_table) {
 	rb_mark_tbl(finalizer_table);
     }
Index: variable.c
===================================================================
RCS file: /src/ruby/variable.c,v
retrieving revision 1.29.2.18
diff -u -r1.29.2.18 variable.c
--- variable.c	2002/05/01 09:37:59	1.29.2.18
+++ variable.c	2002/05/03 18:03:50
@@ -388,7 +388,7 @@
 val_marker(data)
     void *data;
 {
-    if (data) rb_gc_mark_maybe(data);
+    if (data) rb_gc_mark_maybe((VALUE)data);
 }
 
 static VALUE
@@ -411,7 +411,7 @@
 
 static void
 var_marker(var)
-    VALUE **var;
+    VALUE *var;
 {
     if (var) rb_gc_mark_maybe(*var);
 }
@@ -435,7 +435,7 @@
     (*entry->marker)(entry->data);
     trace = entry->trace;
     while (trace) {
-	if (trace->data) rb_gc_mark_maybe(trace->data);
+	if (trace->data) rb_gc_mark_maybe((VALUE)trace->data);
 	trace = trace->next;
     }
     return ST_CONTINUE;

In This Thread