Stas Bekman wrote:
> I can manipulate the elements on the sp stack if I use this declaration:
>
> void mpxs_Apache__Foo_bar(pTHX_ I32 items, SV **MARK, SV **SP)
>
> but I cannot control the stack on the way back, since WrapXS will
> render this function as:
>
> XS(XS_Apache_Foo_bar)
> {
> dXSARGS;
> {
> mpxs_Apache__Foo_bar(aTHX_ items, MARK+1, SP);
> }
> XSRETURN_EMPTY;
> }
>
> This XSRETURN_EMPTY ruins everything.
>
> Now the only way I can manipulate the returning stack with WrapXS is
> using MPXS_ declaration like:
>
> static XS(MPXS_Apache__Foo_bar)
>
> and then I can do anything I want, since there will be no wrapper
> created around this XSsub.
>
> The problem is that source_scan won't pick up an MPXS_ function if it
> doesn't start with MPXS_{apr|ap|modperl}. Any idea what's
> wrong with:
>
> static XS(MPXS_Apache__Foo_bar)
Also why if I have a function
static XS(MPXS_modperl_bar)
I absolutely must have another function called:
static whatever modperl_bar(whatever)
If there is no modperl_bar, source_scan won't pick MPXS_modperl_bar
I know that MPXS_ is supposed to be a thin wrapper, but what if I don't
need
to make any calls but only play with the stack?
What do I miss, Doug?
_____________________________________________________________________
Stas Bekman JAm_pH -- Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide http://perl.apache.org/guide
mailto:[EMAIL PROTECTED] http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]