On Fri, Dec 04, 2009 at 05:30:28PM +0000, Tim Bunce wrote:
> Thanks for the reports Nick. I'll aim to work on them tonight.
I tried to trigger the assertion via call_sv() or call_method(), but this
XS code doesn't fail:
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
MODULE = Call PACKAGE = Call
I32
call_sv(sub_name, flags = 0)
SV *sub_name
I32 flags
I32
call_method(package, method)
SV *package
char *method
CODE:
PUSHMARK(SP);
XPUSHs(package);
PUTBACK;
call_method(method, G_SCALAR);
even with (guesswork) contortions to try to get it to fire within a subst at
the same point as SWASH loading:
/home/nclark/Sandpit/snap5.9.x-v5.11.2-111-gdcae3e3/bin/perl5.11.2 -d:NYTProf
-Mblib -MCall -wle '; sub foo {warn "Bing"}; $_ = "N";
m/.(?{Call::call_method("main", "foo")})/'
I really don't know XS, or perl stack manipulation - it's probably possible
to re-write that call_method without a PUSHMARK/PUTBACK, and pass arguments,
by copying package ST(0) to ST(1) and then moving something.
Nicholas Clark
--
You've received this message because you are subscribed to
the Devel::NYTProf Development User group.
Group hosted at: http://groups.google.com/group/develnytprof-dev
Project hosted at: http://perl-devel-nytprof.googlecode.com
CPAN distribution: http://search.cpan.org/dist/Devel-NYTProf
To post, email: [email protected]
To unsubscribe, email: [email protected]