[MacRuby] #1188: Error when using define_method (getter) + valueForKey

MacRuby ruby-noreply at macosforge.org
Thu Mar 10 13:37:41 PST 2011

#1188: Error when using define_method (getter) + valueForKey
 Reporter:  thibault.ml@…          |       Owner:  lsansonetti@…                
     Type:  defect                 |      Status:  new                          
 Priority:  minor                  |   Milestone:                               
Component:  MacRuby                |    Keywords:  define_method valueForKey kvo
 class A
   define_method(:foo) { nil }
 p A.new.valueForKey(:foo)
 This will crash with the following backtrace:
 Program received signal EXC_BAD_ACCESS, Could not access memory.
 Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000004
 0x00007fff818ee5f0 in object_getClass ()
 (gdb) bt
 #0  0x00007fff818ee5f0 in object_getClass ()
 #1  0x00000001000e0904 in rb_objc_convert_immediate (obj=0x4) at
 #2  0x0000000103b00e55 in ?? ()
 #3  0x0000000100139343 in __rb_vm_objc_dispatch [inlined] () at
 #4  0x0000000100139343 in rb_vm_dispatch (_vm=0x100d23980,
 cache=0x100e48a20, top=8590064896, self=8590564352, klass=0x20005b5e0,
 sel=0x7fff81549320, block=0x0, opt=0 '\0', argc=1, argv=0x7fff5fbff578) at
 #5  0x0000000103b004e6 in ?? ()
 #6  0x0000000103b001a7 in ?? ()
 #7  0x0000000100152253 in rb_vm_run (fname=<value temporarily unavailable,
 due to optimizations>, node=0x20004bc20, binding=<value temporarily
 unavailable, due to optimizations>, inside_eval=false) at vm.cpp:3946
 #8  0x000000010002d3e0 in ruby_run_node (n=0x20004bc20) at eval.c:211
 #9  0x00000001000e8118 in main (argc=2, argv=0x100d1de20, envp=<value
 temporarily unavailable, due to optimizations>) at main.cpp:40

 However, this works:
 class A
   def foo; nil; end;
 p A.new.valueForKey(:foo)

Ticket URL: <http://www.macruby.org/trac/ticket/1188>
MacRuby <http://macruby.org/>

More information about the macruby-tickets mailing list