#819: Getting references to Method instances leads to segfault -------------------------------------+-------------------------------------- Reporter: eloy.de.en...@… | Owner: lsansone...@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: -------------------------------------+--------------------------------------
Comment(by martinlagarde...@…): Replying to [comment:1 lsansone...@…]: > Just curious, does it still crash if you disable the GC? (set env GC_DISABLE=1). Just tried, apparently yep, it still does. From the GDB session: {{{ Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000018 0x0000000100030f98 in method_eq (method=8620089088, sel=0x10106ddf0, other=8621476064) at proc.c:721 721 if (m1->oclass != m2->oclass (gdb) l 716 } 717 718 Data_Get_Struct(method, rb_vm_method_t, m1); 719 Data_Get_Struct(other, rb_vm_method_t, m2); 720 721 if (m1->oclass != m2->oclass 722 || m1->rclass != m2->rclass 723 || m1->recv != m2->recv 724 || m1->node->objc_imp != m2->node->objc_imp) { 725 return Qfalse; (gdb) p m1 $1 = (rb_vm_method_t *) 0x201cc1f80 (gdb) p m2 $2 = (rb_vm_method_t *) 0x201bc7160 (gdb) p m1->node $3 = (rb_vm_method_node_t *) 0x0 (gdb) p m2->node $4 = (rb_vm_method_node_t *) 0x0 }}} `m1` and `m2`'s `oclass`, `rclass` and `recv` are identical, so it is clearly crashing on `m1->node(0x0)->` :-) However, I did not have time to investigate if a nullness check is necessary, of if `node` should not be `NULL` -- Ticket URL: <http://www.macruby.org/trac/ticket/819#comment:2> MacRuby <http://macruby.org/> _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel