From a3e1b1ce7ed7e7ffac23015fc2fde56511b30681 Mon Sep 17 00:00:00 2001 From: ko1 Date: Sun, 31 Dec 2006 15:02:22 +0000 Subject: * Merge YARV git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/dl/lib/dl/import.rb | 24 ++++++++++++------------ ext/etc/.cvsignore | 1 - ext/etc/etc.c | 6 ++++-- ext/iconv/iconv.c | 2 +- ext/readline/readline.c | 1 - ext/ripper/extconf.rb | 3 +++ ext/win32ole/win32ole.c | 12 ++++++------ ext/zlib/zlib.c | 2 +- 8 files changed, 27 insertions(+), 24 deletions(-) (limited to 'ext') diff --git a/ext/dl/lib/dl/import.rb b/ext/dl/lib/dl/import.rb index f04b0f9142..f6fb35944d 100644 --- a/ext/dl/lib/dl/import.rb +++ b/ext/dl/lib/dl/import.rb @@ -118,12 +118,12 @@ module DL f = import_function(symname, ctype, argtype, opt[:call_type]) name = symname.gsub(/@.+/,'') @func_map[name] = f - define_method(name){|*args,&block| f.call(*args,&block)} - #module_eval(<<-EOS) - # def #{name}(*args, &block) - # @func_map['#{name}'].call(*args,&block) - # end - #EOS + # define_method(name){|*args,&block| f.call(*args,&block)} + module_eval(<<-EOS) + def #{name}(*args, &block) + @func_map['#{name}'].call(*args,&block) + end + EOS module_function(name) f end @@ -142,12 +142,12 @@ module DL raise(RuntimeError, "unknown callback type: #{h[:callback_type]}") end @func_map[name] = f - define_method(name){|*args,&block| f.call(*args,&block)} - #module_eval(<<-EOS) - # def #{name}(*args,&block) - # @func_map['#{name}'].call(*args,&block) - # end - #EOS + #define_method(name){|*args,&block| f.call(*args,&block)} + module_eval(<<-EOS) + def #{name}(*args,&block) + @func_map['#{name}'].call(*args,&block) + end + EOS module_function(name) f end diff --git a/ext/etc/.cvsignore b/ext/etc/.cvsignore index 814345ece8..4088712231 100644 --- a/ext/etc/.cvsignore +++ b/ext/etc/.cvsignore @@ -1,4 +1,3 @@ Makefile mkmf.log *.def -extconf.h diff --git a/ext/etc/etc.c b/ext/etc/etc.c index 1bd767d09c..22907a5c44 100644 --- a/ext/etc/etc.c +++ b/ext/etc/etc.c @@ -512,7 +512,6 @@ Init_etc(void) rb_define_module_function(mEtc, "endgrent", etc_endgrent, 0); rb_define_module_function(mEtc, "getgrent", etc_getgrent, 0); - rb_global_variable(&sPasswd); sPasswd = rb_struct_define("Passwd", "name", "passwd", "uid", "gid", #ifdef HAVE_ST_PW_GECOS @@ -539,12 +538,15 @@ Init_etc(void) #endif NULL); + rb_register_mark_object(sPasswd); + #ifdef HAVE_GETGRENT - rb_global_variable(&sGroup); sGroup = rb_struct_define("Group", "name", #ifdef HAVE_ST_GR_PASSWD "passwd", #endif "gid", "mem", NULL); + + rb_register_mark_object(sGroup); #endif } diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c index 0a5d0dface..be9821130e 100644 --- a/ext/iconv/iconv.c +++ b/ext/iconv/iconv.c @@ -302,7 +302,7 @@ iconv_fail(VALUE error, VALUE success, VALUE failed, struct iconv_env_t* env, co } error = rb_class_new_instance(3, args, error); if (!rb_block_given_p()) rb_exc_raise(error); - ruby_errinfo = error; + rb_set_errinfo(error); return rb_yield(failed); } diff --git a/ext/readline/readline.c b/ext/readline/readline.c index 0b50b438a9..ba7e77f647 100644 --- a/ext/readline/readline.c +++ b/ext/readline/readline.c @@ -53,7 +53,6 @@ static char **readline_attempted_completion_function(const char *text, static int readline_event() { - CHECK_INTS; rb_thread_schedule(); return 0; } diff --git a/ext/ripper/extconf.rb b/ext/ripper/extconf.rb index 6b44073300..99814e5d6c 100644 --- a/ext/ripper/extconf.rb +++ b/ext/ripper/extconf.rb @@ -4,6 +4,9 @@ require 'mkmf' require 'rbconfig' def main + Logging.message "YARV doesn't support Ripper" + return + unless find_executable('bison') unless File.exist?('ripper.c') or File.exist?("#{$srcdir}/ripper.c") Logging.message 'missing bison; abort' diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index b5defc3a29..04f55a3165 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -1801,7 +1801,7 @@ fole_s_connect(int argc, VALUE *argv, VALUE self) ole_initialize(); rb_scan_args(argc, argv, "1*", &svr_name, &others); - if (ruby_safe_level > 0 && OBJ_TAINTED(svr_name)) { + if (rb_safe_level() > 0 && OBJ_TAINTED(svr_name)) { rb_raise(rb_eSecurityError, "Insecure Object Connection - %s", StringValuePtr(svr_name)); } @@ -2182,12 +2182,12 @@ fole_initialize(int argc, VALUE *argv, VALUE self) rb_call_super(0, 0); rb_scan_args(argc, argv, "11*", &svr_name, &host, &others); - if (ruby_safe_level > 0 && OBJ_TAINTED(svr_name)) { + if (rb_safe_level() > 0 && OBJ_TAINTED(svr_name)) { rb_raise(rb_eSecurityError, "Insecure Object Creation - %s", StringValuePtr(svr_name)); } if (!NIL_P(host)) { - if (ruby_safe_level > 0 && OBJ_TAINTED(host)) { + if (rb_safe_level() > 0 && OBJ_TAINTED(host)) { rb_raise(rb_eSecurityError, "Insecure Object Creation - %s", StringValuePtr(svr_name)); } @@ -6645,7 +6645,7 @@ fev_initialize(int argc, VALUE *argv, VALUE self) } if(TYPE(itf) != T_NIL) { - if (ruby_safe_level > 0 && OBJ_TAINTED(itf)) { + if (rb_safe_level() > 0 && OBJ_TAINTED(itf)) { rb_raise(rb_eSecurityError, "Insecure Event Creation - %s", StringValuePtr(itf)); } @@ -6854,8 +6854,8 @@ folevariant_value(VALUE self) void Init_win32ole() { - rb_global_variable(&ary_ole_event); ary_ole_event = rb_ary_new(); + rb_register_mark_object(ary_ole_event); id_events = rb_intern("events"); com_vtbl.QueryInterface = QueryInterface; @@ -6865,8 +6865,8 @@ Init_win32ole() com_vtbl.GetTypeInfo = GetTypeInfo; com_vtbl.GetIDsOfNames = GetIDsOfNames; com_vtbl.Invoke = Invoke; - rb_global_variable(&com_hash); com_hash = Data_Wrap_Struct(rb_cData, rb_mark_hash, st_free_table, st_init_numtable()); + rb_register_mark_object(com_hash); cWIN32OLE = rb_define_class("WIN32OLE", rb_cObject); diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index ed3f9bcbc6..16aebc61fc 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -1759,7 +1759,7 @@ gzfile_read_raw_rescue(VALUE arg) { struct gzfile *gz = (struct gzfile*)arg; VALUE str = Qnil; - if (rb_obj_is_kind_of(ruby_errinfo, rb_eNoMethodError)) { + if (rb_obj_is_kind_of(ruby_errinfo(), rb_eNoMethodError)) { str = rb_funcall(gz->io, id_read, 1, INT2FIX(GZFILE_READ_SIZE)); if (!NIL_P(str)) { Check_Type(str, T_STRING); -- cgit v1.2.3