#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/>