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]

Reply via email to