[macruby-changes] [4379] MacRuby/trunk/dispatcher.cpp

source_changes at macosforge.org source_changes at macosforge.org
Sat Jul 24 11:58:07 PDT 2010


Revision: 4379
          http://trac.macosforge.org/projects/ruby/changeset/4379
Author:   lsansonetti at apple.com
Date:     2010-07-24 11:58:05 -0700 (Sat, 24 Jul 2010)
Log Message:
-----------
fix a crash when yielding a block inside a loop in a thread (#620, patch contributed by watson1978 at gmail.com)

Modified Paths:
--------------
    MacRuby/trunk/dispatcher.cpp

Modified: MacRuby/trunk/dispatcher.cpp
===================================================================
--- MacRuby/trunk/dispatcher.cpp	2010-07-24 15:44:15 UTC (rev 4378)
+++ MacRuby/trunk/dispatcher.cpp	2010-07-24 18:58:05 UTC (rev 4379)
@@ -1210,7 +1210,9 @@
 	}
 	~Finally() {
 	    vm->add_current_block(b);
-	    b->flags &= ~VM_BLOCK_THREAD;
+	    if (vm == RoxorVM::main) {
+		b->flags &= ~VM_BLOCK_THREAD;
+	    }
 	}
     } finalizer(vm, b);
 
@@ -1338,7 +1340,7 @@
     }
     else {
 	assert(b->dvars_size == dvars_size);
-	assert((b->flags & flags) == (flags & ~VM_BLOCK_THREAD));
+	assert((b->flags & flags) == flags);
     }
 
     b->proc = Qnil;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100724/263af775/attachment-0001.html>


More information about the macruby-changes mailing list