diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-10-06 01:50:41 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-10-06 01:50:41 +0000 |
commit | 56235e083dc8acae32d8eb79e56b602433806a95 (patch) | |
tree | dc4f505d0b1e3c72c7627ca499844c80d400d83c | |
parent | 4fca6e91dc77ac84255ac27aa1fc2784c23bef4f (diff) |
* marshal.c (w_object): should pass "weak" value to next level.
[ruby-dev:21496]
* eval.c (proc_alloc): should not use cached object if klass is
different. [ruby-talk:83685]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | eval.c | 2 | ||||
-rw-r--r-- | lib/mkmf.rb | 2 | ||||
-rw-r--r-- | marshal.c | 2 |
4 files changed, 11 insertions, 3 deletions
@@ -1,3 +1,11 @@ +Mon Oct 6 09:19:54 2003 Yukihiro Matsumoto <[email protected]> + + * marshal.c (w_object): should pass "weak" value to next level. + [ruby-dev:21496] + + * eval.c (proc_alloc): should not use cached object if klass is + different. [ruby-talk:83685] + Sun Oct 5 23:27:09 2003 Tanaka Akira <[email protected]> * lib/pathname.rb: version information is added in document. @@ -6928,7 +6928,7 @@ proc_alloc(klass, proc) rb_warn("tried to create Proc object without a block"); } - if (!proc && ruby_block->block_obj) { + if (!proc && ruby_block->block_obj && CLASS_OF(ruby_block->block_obj) == klass) { return ruby_block->block_obj; } block = Data_Make_Struct(klass, struct BLOCK, blk_mark, blk_free, data); diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 0ff6351d02..c002c8893e 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -934,7 +934,7 @@ static: $(STATIC_LIB) end end ensure - mfile.close + mfile.close if mfile end def init_mkmf(config = CONFIG) @@ -439,7 +439,7 @@ w_object(obj, arg, limit, weak) limit--; c_arg.limit = limit; c_arg.arg = arg; - c_arg.weak = Qfalse; + c_arg.weak = weak; if (ivtbl = rb_generic_ivar_table(obj)) { w_byte(TYPE_IVAR, arg); |