[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