[MacRuby-devel] Problems with return code from sheet (possible regression)

Laurent Sansonetti lsansonetti at apple.com
Tue Oct 6 13:28:39 PDT 2009


Hi Michael,

It's actually a well-known bug. MacRuby trunk doesn't honor the  
sel_of_type BridgeSupport attribute, therefore your sheet callback is  
registered to the runtime with the default signature (where all  
arguments and return value are Objective-C objects), and later it  
fails to convert the returnCode argument (in this backtrace, 0x1) as  
an Objective-C object.

Laurent

On Oct 6, 2009, at 12:58 PM, Michael Winterstein wrote:

> I seem to have run into nearly the same problem that I had a while  
> back, in this ticket:
> http://www.macruby.org/trac/ticket/221
>
> I haven't filed it yet this time since last time it turned out to be  
> already fixed, but I'm not certain that's the case now.  At any  
> rate, it's being handled by different functions.
> The same thing is happening - the return code being passed to my  
> delegate (from [NSApplication endSheet:returnCode]) isn't being  
> treated as the NSInteger it ought to be.  At least I think so.   
> Here's the trace, and you can see that the value 1(NSOKButton) is  
> being treated as id, causing problems (0/NSCancelButton doesn't  
> crash as it's a special case) :
>
> Program received signal:  “EXC_BAD_ACCESS”.
> (gdb) bt
> #0  rb_ocid_to_rval [inlined] () at /Users/parzival/devo/buried/ 
> MacRuby/trunk/include/ruby/ruby.h:1252
> #1  0x0000000100130161 in rb_vm_ocval_to_rval (ocval=0x1) at  
> compiler.cpp:6155
> #2  0x000000010110537c in ?? ()
> #3  0x00007fff820c29f9 in -[NSApplication endSheet:returnCode:] ()
> #4  0x00007fff81fd523e in -[NSApplication sendAction:to:from:] ()
> #5  0x00007fff81fd519d in -[NSControl sendAction:to:] ()
> #6  0x00007fff8206068b in -[NSCell  
> trackMouse:inRect:ofView:untilMouseUp:] ()
> #7  0x00007fff820911a3 in -[NSButtonCell  
> trackMouse:inRect:ofView:untilMouseUp:] ()
> #8  0x00007fff8205f135 in -[NSControl mouseDown:] ()
> #9  0x00007fff81f79967 in -[NSWindow sendEvent:] ()
> #10 0x00007fff81eaf122 in -[NSApplication sendEvent:] ()
> #11 0x00007fff81e45acc in -[NSApplication run] ()
> #12 0x00007fff81e3e798 in NSApplicationMain ()
>
> Attached are a few files as a test case, an NSWindowController  
> subclass and MainMenu.nib that can be dropped into a  new project to  
> check this if anyone wants to.  I recall when I first had this  
> problem that I could see what the change was, but unfortunately I've  
> forgotten that now.
> <Testfiles.zip>
>
>
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel



More information about the MacRuby-devel mailing list