It seems to be working in 2761, thanks. For a little while none of those calls were getting through (apparently being sent to drb.method_missing) so I couldn't check if it was working. 'RunModal' is a workaround for that specific call, too. I'm also looking into SL's new way of using sheets, with a completion handler.

Michael
On Oct 6, 2009, at 4:57 PM, Laurent Sansonetti wrote:

FYI, the problem should (in theory) be fixed in r2741.

Laurent

On Oct 6, 2009, at 1:28 PM, Laurent Sansonetti wrote:

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@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to