On Thu, 2004-04-15 at 00:58, Leopold Toetsch wrote:
> Did you turn on debugging? Most of these name mangling and string
> constant stuff should be covered, e.g.:
>
> $ parrot -dffff /tmp/object-meths_15.pasm 2>&1 | grep meth
Aha, here's an interesting difference. I've been using single quotes
for string constants. Here's what happens when I change the double
quotes around the method name to single quotes in that test:
emit newclass P3, "Foo"
emit find_type I0, "Foo"
emit new P2, I0
emit set S0, 'meth
emit fetchmethod P0, P2, S0
emit print "main\n"
emit invokecc
emit print "back\n"
emit fetchmethod P0, P3, S0
emit set P2, P3
emit invokecc
emit print "back\n"
emit end
emit _Foo@@@meth:
emit print "in meth\n"
emit invoke P1
For what it's worth, if I switch back and forth, as in this PASM:
.local pmc args
new args, .PerlHash
set args['height'], 100
set args["width"], 100
set args['bpp'], 0
set args["flags"], 1
The debug output indicates:
emit new P16, 33
emit set P16['height], 100
emit set P16["width"], 100
emit set P16['bpp], 0
emit set P16["flags"], 1
That may not be the root cause, but it's certainly suspicious.
-- c