diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-04-21 08:17:18 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-04-21 08:17:18 +0000 |
commit | b0b623e4ebb6b6dd7e151e5f0e2f24fc12f313d3 (patch) | |
tree | 1033c57d071c082dad15e8795c43dcd166198c39 | |
parent | 20a2972824e61709dd83ed120848d6808da48678 (diff) | |
download | ruby-b0b623e4ebb6b6dd7e151e5f0e2f24fc12f313d3.tar.gz ruby-b0b623e4ebb6b6dd7e151e5f0e2f24fc12f313d3.tar.xz ruby-b0b623e4ebb6b6dd7e151e5f0e2f24fc12f313d3.zip |
* gc.c (rb_gc): use rb_gc_mark_maybe() to mark registered C
addresses. C variables may not hold valid reference to Ruby
objects. [ruby-core:00975]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | gc.c | 2 | ||||
-rw-r--r-- | lib/singleton.rb | 2 |
3 files changed, 8 insertions, 2 deletions
@@ -27,6 +27,12 @@ Sat Apr 19 21:55:10 2003 Akinori MUSHA <knu@iDaemons.org> * ext/Setup*: Add zlib and remove bogus and obsolete entries. +Sat Apr 19 14:47:07 2003 Yukihiro Matsumoto <matz@ruby-lang.org> + + * gc.c (rb_gc): use rb_gc_mark_maybe() to mark registered C + addresses. C variables may not hold valid reference to Ruby + objects. [ruby-core:00975] + Sat Apr 19 00:56:13 2003 Yukihiro Matsumoto <matz@ruby-lang.org> * struct.c (rb_struct_eql): should compare values with "eql?". @@ -1236,7 +1236,7 @@ rb_gc() /* mark protected global variables */ for (list = global_List; list; list = list->next) { - rb_gc_mark(*list->varptr); + rb_gc_mark_maybe(*list->varptr); } rb_mark_end_proc(); rb_gc_mark_global_tbl(); diff --git a/lib/singleton.rb b/lib/singleton.rb index 3c20c1325..147b04187 100644 --- a/lib/singleton.rb +++ b/lib/singleton.rb @@ -156,7 +156,7 @@ module Singleton @__instance__ = new ensure if @__instance__ - def self.instance() @__instance__ end + define_method(:instance) {@__instance__} else @__instance__ = nil end |