[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]