#880: Bus error with Dispatch::Source, Using 32bit arch. ----------------------------------+----------------------------------------- Reporter: watson1978@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: ----------------------------------+----------------------------------------- Comment(by watson1978@…): I think that the reason for the order of declaring the member of rb_source_t is not corresponding to rb_dispatch_obj_t, rb_queue_t and rb_group_t. {{{ #!diff diff --git a/gcd.c b/gcd.c index cacd6b5..42131d2 100644 --- a/gcd.c +++ b/gcd.c @@ -77,8 +77,8 @@ typedef enum SOURCE_TYPE_ENUM typedef struct { struct RBasic basic; int suspension_count; - source_enum_t source_enum; dispatch_source_t source; + source_enum_t source_enum; rb_vm_block_t *event_handler; VALUE handle; } rb_source_t; @@ -87,6 +87,7 @@ typedef struct { typedef struct { struct RBasic basic; + int reserved; dispatch_semaphore_t sem; long count; } rb_semaphore_t; }}} Result: {{{ $ DYLD_LIBRARY_PATH=. arch -x86_64 ./macruby -v -I./lib t.rb MacRuby 0.7 (ruby 1.9.2) [universal-darwin10.0, x86_64] /Users/watson/src/MacRuby/lib/dispatch/enumerable.rb:34: warning: `&' interpreted as argument prefix /Users/watson/src/MacRuby/lib/dispatch/enumerable.rb:36: warning: `&' interpreted as argument prefix #<Dispatch::Source:0x2000d5c80> $ DYLD_LIBRARY_PATH=. arch -i386 ./macruby -v -I./lib t.rb MacRuby 0.7 (ruby 1.9.2) [universal-darwin10.0, i386] /Users/watson/src/MacRuby/lib/dispatch/enumerable.rb:34: warning: `&' interpreted as argument prefix /Users/watson/src/MacRuby/lib/dispatch/enumerable.rb:36: warning: `&' interpreted as argument prefix #<Dispatch::Source:0x2081c60> }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/880#comment:1> MacRuby <http://macruby.org/>