Geoffrey Young wrote:

-#ifdef USE_ITHREADS
-    MP_dINTERP_PUTBACK(interp);
-#endif
+    MP_INTERP_PUTBACK(interp);


yeah, that makes sense - the macro is already a no-op for non-threaded perls.

but why the name change? it parallels MP_dINTERP_SELECT as it stands now.

That's exactly the mistake 'd' stands for declare, and MP_INTERP_PUTBACK is placed after code where you can't declare variables, neither you do declare them.


Notice:

--- src/modules/perl/modperl_interp.h    13 Sep 2003 20:35:33 -0000    1.19
+++ src/modules/perl/modperl_interp.h    23 Sep 2003 19:17:22 -0000
[...[
-#define MP_dINTERP_PUTBACK(interp) dNOOP
+#define MP_INTERP_PUTBACK(interp) NOOP

if you look at dNOOP, it's:

#define dNOOP extern int Perl___notused PERL_UNUSED_DECL

something that you don't want to put after code.

I'm looking forward for mandrake cooker gcc picking up the changes from the end of july where the gcc team has added a new flag that will complain about declarations after code, so we will be able to catch this problem before committing things. It's not the first time we get bitten by gcc on linux allowing declarations after code.

__________________________________________________________________
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



Reply via email to