#776: segfault in Parrot_str_equal...
---------------------+------------------------------------------------------
 Reporter:  coke     |       Owner:       
     Type:  bug      |      Status:  new  
 Priority:  blocker  |   Milestone:       
Component:  none     |     Version:  1.2.0
 Severity:  medium   |    Keywords:       
     Lang:  tcl      |       Patch:       
 Platform:           |  
---------------------+------------------------------------------------------
 Tcl has a TclString PMC - I'm working on renaming that to TclStringPMC and
 having a TclString PIR class that subclasses the PMC, until I can move
 everything from the PMC back to the PIR object, then I'll remove the PMC.

 Things now mostly work, but I'm getting a segfault in Parrot_str_equal,
 called from "$I0 = isa foo, 'Undef'". The Foo in question is a TclString
 (which is now a sublcass of TclStringPMC which in turn is a subclass of
 String)

 the backtrace starts with:

 {{{
 #0  0xb7c16b91 in Parrot_str_equal (interp=0x804f040, s1=0xb6a1bca8,
 s2=0x1)
     at src/string/api.c:1556
 #1  0xb7e6d661 in Parrot_Class_isa_pmc (interp=0x804f040, pmc=0xb6d6ded8,
     lookup=0x81c9a78) at ./src/pmc/class.pmc:1306
 #2  0xb7e6d119 in Parrot_Class_isa (interp=0x804f040, pmc=0xb6d6ded8,
     classname=0x812fdc8) at ./src/pmc/class.pmc:1356
 #3  0xb7c29c20 in Parrot_isa_i_p_sc (cur_opcode=0xb6e0581c,
 interp=0x804f040)
     at src/ops/object.ops:225
 }}}

 at src/string/api.c:1556, s1 is "Undef". s2 is (const STRING *) 0x1

 going up a level to ./src/pmc/class.pmc:1306, the invalid class name is
 "self_name"; the value of is_proxy here is 0, which seems wrong to me. (as
 a subclass of a PMC, shouldn't it be a proxy?)

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/776>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to