summaryrefslogtreecommitdiff
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
commit56235e083dc8acae32d8eb79e56b602433806a95 (patch)
treedc4f505d0b1e3c72c7627ca499844c80d400d83c /eval.c
parent4fca6e91dc77ac84255ac27aa1fc2784c23bef4f (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
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 7f2062ff11..6114efa7e0 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);