summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-06 01:50:41 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-06 01:50:41 +0000
commitd8f425bb7a9552137f8b84a65e6c06b921bedb59 (patch)
treedc4f505d0b1e3c72c7627ca499844c80d400d83c /eval.c
parent866e09e69d0bc66fabf62ba7c4a76dd700083cb5 (diff)
downloadruby-d8f425bb7a9552137f8b84a65e6c06b921bedb59.tar.gz
ruby-d8f425bb7a9552137f8b84a65e6c06b921bedb59.tar.xz
ruby-d8f425bb7a9552137f8b84a65e6c06b921bedb59.zip
* 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: http://svn.ruby-lang.org/repos/ruby/trunk@4701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 7f2062ff1..6114efa7e 100644
--- a/eval.c
+++ b/eval.c
@@ -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);