ruby-changes:4501
From: ko1@a...
Date: Mon, 14 Apr 2008 12:44:34 +0900 (JST)
Subject: [ruby-changes:4501] nobu - Ruby:r15994 (trunk): * gc.c (finalizers): removed.
nobu 2008-04-14 12:44:15 +0900 (Mon, 14 Apr 2008) New Revision: 15994 Modified files: trunk/ChangeLog trunk/gc.c Log: * gc.c (finalizers): removed. [ruby-dev:34349] http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15994&r2=15993&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/gc.c?r1=15994&r2=15993&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 15993) +++ ChangeLog (revision 15994) @@ -1,3 +1,7 @@ +Mon Apr 14 12:44:13 2008 Nobuyoshi Nakada <nobu@r...> + + * gc.c (finalizers): removed. [ruby-dev:34349] + Mon Apr 14 00:51:40 2008 Yusuke Endoh <mame@t...> * test/ruby/test_parse.rb: add tests to achieve over 95% test coverage Index: gc.c =================================================================== --- gc.c (revision 15993) +++ gc.c (revision 15994) @@ -1814,58 +1814,7 @@ return os_obj_of(of); } -static VALUE finalizers; - -/* deprecated - */ - -static VALUE -add_final(VALUE os, VALUE block) -{ - rb_warn("ObjectSpace::add_finalizer is deprecated; use define_finalizer"); - if (!rb_respond_to(block, rb_intern("call"))) { - rb_raise(rb_eArgError, "wrong type argument %s (should be callable)", - rb_obj_classname(block)); - } - rb_ary_push(finalizers, block); - return block; -} - /* - * deprecated - */ -static VALUE -rm_final(VALUE os, VALUE block) -{ - rb_warn("ObjectSpace::remove_finalizer is deprecated; use undefine_finalizer"); - rb_ary_delete(finalizers, block); - return block; -} - -/* - * deprecated - */ -static VALUE -finals(void) -{ - rb_warn("ObjectSpace::finalizers is deprecated"); - return finalizers; -} - -/* - * deprecated - */ - -static VALUE -call_final(VALUE os, VALUE obj) -{ - rb_warn("ObjectSpace::call_finalizer is deprecated; use define_finalizer"); - need_call_final = 1; - FL_SET(obj, FL_FINALIZE); - return obj; -} - -/* * call-seq: * ObjectSpace.undefine_finalizer(obj) * @@ -1952,14 +1901,7 @@ objid = rb_obj_id(obj); /* make obj into id */ rb_thread_critical = Qtrue; args[1] = 0; - if (RARRAY_LEN(finalizers) > 0) { - args[1] = rb_obj_freeze(rb_ary_new3(1, objid)); - } args[2] = (VALUE)rb_safe_level(); - for (i=0; i<RARRAY_LEN(finalizers); i++) { - args[0] = RARRAY_PTR(finalizers)[i]; - rb_protect(run_single_final, (VALUE)args, &status); - } if (finalizer_table && st_delete(finalizer_table, (st_data_t*)&obj, &table)) { if (!args[1] && RARRAY_LEN(table) > 0) { args[1] = rb_obj_freeze(rb_ary_new3(1, objid)); @@ -2274,21 +2216,12 @@ rb_mObSpace = rb_define_module("ObjectSpace"); rb_define_module_function(rb_mObSpace, "each_object", os_each_obj, -1); rb_define_module_function(rb_mObSpace, "garbage_collect", rb_gc_start, 0); - rb_define_module_function(rb_mObSpace, "add_finalizer", add_final, 1); - rb_define_module_function(rb_mObSpace, "remove_finalizer", rm_final, 1); - rb_define_module_function(rb_mObSpace, "finalizers", finals, 0); - rb_define_module_function(rb_mObSpace, "call_finalizer", call_final, 1); rb_define_module_function(rb_mObSpace, "define_finalizer", define_final, -1); rb_define_module_function(rb_mObSpace, "undefine_finalizer", undefine_final, 1); rb_define_module_function(rb_mObSpace, "_id2ref", id2ref, 1); - rb_gc_register_address(&rb_mObSpace); - rb_global_variable(&finalizers); - rb_gc_unregister_address(&rb_mObSpace); - finalizers = rb_ary_new(); - rb_global_variable(&nomem_error); nomem_error = rb_exc_new2(rb_eNoMemError, "failed to allocate memory"); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/