[MacRuby] #1085: Assertion failed: ((b->flags & flags) == flags)
MacRuby
ruby-noreply at macosforge.org
Sat Jan 1 08:08:17 PST 2011
#1085: Assertion failed: ((b->flags & flags) == flags)
----------------------------------+-----------------------------------------
Reporter: watson1978@… | Owner: lsansonetti@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby | Keywords:
----------------------------------+-----------------------------------------
Comment(by watson1978@…):
Apparently, when a condition of the "top_b->flags == 0 && b->parent_block"
is formed, VM_BLOCK_THREAD seems to be need.
{{{
#!diff
diff --git a/dispatcher.cpp b/dispatcher.cpp
index 5d0d07c..3a2c71b 100644
--- a/dispatcher.cpp
+++ b/dispatcher.cpp
@@ -1233,7 +1233,8 @@ rb_vm_yield_args(void *_vm, int argc, const VALUE
*argv)
top_b = GetThreadPtr(vm->get_thread())->body;
}
}
- if (top_b != NULL && (top_b->flags & VM_BLOCK_THREAD)) {
+ if (top_b != NULL &&
+ ((top_b->flags & VM_BLOCK_THREAD) || (top_b->flags == 0 &&
b->parent_block))) {
b->flags |= VM_BLOCK_THREAD;
}
}}}
--
Ticket URL: <http://www.macruby.org/trac/ticket/1085#comment:1>
MacRuby <http://macruby.org/>
More information about the macruby-tickets
mailing list