Joe Orton wrote:
On Sun, Mar 27, 2005 at 08:06:39PM -0500, Stas Bekman wrote:
My problem is that I can't see how can I stick a call to MP_CLONE_INSERT_OBJ() inside the mp_xs_APR__Pool_2obj(ptr) wrapper. Since it's usually used as:
RETVAL = mp_xs_APR__Pool_2obj(ptr);
Is there some C trick to have multiple statements in the macro so it can be an rvalue? something like:
RETVAL = do { MP_CLONE_INSERT_OBJ(ptr); mp_xs_APR__Pool_2obj(ptr) };
RETVAL = ( stmt1, stmt2, rvalue );
will do what you're looking for, I think.
Yup, and it works for complex block statements too! I just hope that this is works everywhere.
Thanks a lot, Joe!
it seems that this trick won't work for us, as I need to return a value created inside that macro:
#define C(x) \
(STMT_START { \
int y = x; \
} STMT_END, y )and 'y' is undefined.
Oh well, I'll see if we can use inlined functions instead.
-- __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
