From: nobu.nakada@... Date: 2002-06-11T21:38:58+09:00 Subject: [ruby-dev:17389] Re: avoid VC++ warnings なかだです。 At Tue, 11 Jun 2002 21:31:41 +0900, Takaaki Tateishi wrote: > > これを読むまで気づいてませんでしたが、STR2CSTR()はobsoleteです。 > > そうだったのですか… > 添付されていたパッチは一つ古いバージョンからのものに > なっているので,今夜か明日あたりに修正しておきます. すいません、cvs upし忘れてました。まぁ、ほぼ機械的に置き換えれ ば大丈夫そうです。 Index: ext/dl/depend =================================================================== RCS file: /cvs/ruby/src/ruby/ext/dl/depend,v retrieving revision 1.4 diff -u -2 -p -r1.4 depend --- ext/dl/depend 2002/06/11 01:27:47 1.4 +++ ext/dl/depend 2002/06/11 08:39:49 @@ -6,5 +6,5 @@ LDSHARED_TEST = $(LDSHARED) $(LDFLAGS) t libtest.so: test/libtest.so -test/libtest.so: test/test.o test/libtest.def +test/libtest.so: test/test.o $(srcdir)/test/libtest.def $(RUBY) -rftools -e 'ARGV.each do|d|File.mkpath(File.dirname(d))end' $@ $(LDSHARED_TEST:dl.def=test/libtest.def) Index: ext/dl/dl.c =================================================================== RCS file: /cvs/ruby/src/ruby/ext/dl/dl.c,v retrieving revision 1.9 diff -u -2 -p -r1.9 dl.c --- ext/dl/dl.c 2002/06/11 11:16:56 1.9 +++ ext/dl/dl.c 2002/06/11 12:32:02 @@ -582,6 +582,6 @@ rb_dl_callback(int argc, VALUE argv[], V } - Check_Type(type, T_STRING); - switch( STR2CSTR(type)[0] ){ + StringValue(type); + switch( RSTRING(type)->ptr[0] ){ case '0': rettype = 0x00; @@ -609,5 +609,5 @@ rb_dl_callback(int argc, VALUE argv[], V break; default: - rb_raise(rb_eDLTypeError, "unsupported type `%c'", STR2CSTR(type)[0]); + rb_raise(rb_eDLTypeError, "unsupported type `%s'", RSTRING(type)->ptr[0]); } @@ -627,5 +627,5 @@ rb_dl_callback(int argc, VALUE argv[], V rb_assoc_new(type,proc)); sprintf(fname, "rb_dl_callback_func_%d_%d", rettype, entry); - return rb_dlsym_new((void (*)())rb_dl_callback_table[rettype][entry], fname, STR2CSTR(type)); + return rb_dlsym_new((void (*)())rb_dl_callback_table[rettype][entry], fname, RSTRING(type)->ptr); } Index: ext/dl/mkcallback.rb =================================================================== RCS file: /cvs/ruby/src/ruby/ext/dl/mkcallback.rb,v retrieving revision 1.3 diff -u -2 -p -r1.3 mkcallback.rb --- ext/dl/mkcallback.rb 2002/06/11 11:16:56 1.3 +++ ext/dl/mkcallback.rb 2002/06/11 12:32:25 @@ -34,5 +34,5 @@ def mkfunc(rettype, fnum, argc) " proto = rb_ary_entry(obj, 0);", " proc = rb_ary_entry(obj, 1);", - " rb_dl_scan_callback_args(buff, STR2CSTR(proto), &argc, argv);", + " rb_dl_scan_callback_args(buff, StringValuePtr(proto), &argc, argv);", " retval = rb_funcall2(proc, id_call, argc, argv);", "", -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦