#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