You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by pg...@apache.org on 2006/12/05 11:01:09 UTC

svn commit: r482563 - /perl/modperl/trunk/src/modules/perl/

Author: pgollucci
Date: Tue Dec  5 02:01:08 2006
New Revision: 482563

URL: http://svn.apache.org/viewvc?view=rev&rev=482563
Log:
o Move MP_PERL_VERSION* from modperl_util.h to modperl_common_util.h
o add MP_PERL_BRANCH to replace 5_6_x and related
o Replace all occurences of PERL_REVISION, PERL_VERSION, PERL_SUBVERSION
  with calls to the macros.



Modified:
    perl/modperl/trunk/src/modules/perl/mod_perl.c
    perl/modperl/trunk/src/modules/perl/modperl_cmd.c
    perl/modperl/trunk/src/modules/perl/modperl_common_util.c
    perl/modperl/trunk/src/modules/perl/modperl_common_util.h
    perl/modperl/trunk/src/modules/perl/modperl_interp.c
    perl/modperl/trunk/src/modules/perl/modperl_interp.h
    perl/modperl/trunk/src/modules/perl/modperl_io.h
    perl/modperl/trunk/src/modules/perl/modperl_perl.c
    perl/modperl/trunk/src/modules/perl/modperl_perl.h
    perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h
    perl/modperl/trunk/src/modules/perl/modperl_perl_pp.h
    perl/modperl/trunk/src/modules/perl/modperl_svptr_table.c
    perl/modperl/trunk/src/modules/perl/modperl_util.h

Modified: perl/modperl/trunk/src/modules/perl/mod_perl.c
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/mod_perl.c?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/mod_perl.c (original)
+++ perl/modperl/trunk/src/modules/perl/mod_perl.c Tue Dec  5 02:01:08 2006
@@ -165,8 +165,7 @@
     dTHXa(perl);
 
 /* 5.7.3+ has a built-in special ${^TAINT}, backport it to 5.6.0+ */
-#if PERL_REVISION == 5 && \
-    (PERL_VERSION == 6 || (PERL_VERSION == 7 && PERL_SUBVERSION < 3))
+#if MP_PERL_VERSION_AT_MOST(5, 7, 2)
     {
         GV *gv = gv_fetchpv("\024AINT", GV_ADDMULTI, SVt_IV);
         sv_setiv(GvSV(gv), PL_tainting);
@@ -266,7 +265,7 @@
     PL_endav = Nullav;
 
 /* This was fixed in 5.9.0/5.8.1 (17775), but won't compile after 19122 */
-#if PERL_REVISION == 5 && PERL_VERSION == 8 && PERL_SUBVERSION == 0 && \
+#if MP_PERL_VERSION(5, 8, 0) && \
     defined(USE_REENTRANT_API) && defined(HAS_CRYPT_R) && defined(__GLIBC__)
     /* workaround perl5.8.0/glibc bug */
     PL_reentrant_buffer->_crypt_struct.current_saltbits = 0;
@@ -585,13 +584,9 @@
 static apr_status_t modperl_sys_term(void *data)
 {
     /* PERL_SYS_TERM() needs 'my_perl' as of 5.9.5 */
-#ifdef USE_ITHREADS
-# if PERL_REVISION == 5 && \
-  ((PERL_VERSION == 9 && PERL_SUBVERSION > 4) || \
-   PERL_VERSION > 9)
+#if MP_PERL_VERSION_AT_LEAST(5, 9, 5) && defined(USE_ITHREADS)
     modperl_cleanup_data_t *cdata = (modperl_cleanup_data_t *)data;
     PerlInterpreter *my_perl = cdata == NULL ? NULL : (PerlInterpreter *)cdata->data;
-# endif
 #endif
     MP_init_status = 0;
     MP_threads_started = 0;
@@ -712,10 +707,10 @@
     }
 #endif
 
-#if PERL_REVISION == 5 && PERL_VERSION < 9
-#define MP_PERL_VERSION_STAMP "Perl/v%vd"
-#else
+#if MP_PERL_VERSION_AT_LEAST(5, 9, 0)
 #define MP_PERL_VERSION_STAMP "Perl/%" SVf
+#else
+#define MP_PERL_VERSION_STAMP "Perl/v%vd"
 #endif
     
     ap_add_version_component(pconf, MP_VERSION_STRING);

Modified: perl/modperl/trunk/src/modules/perl/modperl_cmd.c
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_cmd.c?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_cmd.c (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_cmd.c Tue Dec  5 02:01:08 2006
@@ -564,7 +564,7 @@
         GV *gv = gv_fetchpv("0", TRUE, SVt_PV);
         ENTER;SAVETMPS;
         save_scalar(gv); /* local $0 */
-#if PERL_REVISION == 5 && PERL_VERSION >= 9
+#if MP_PERL_VERSION_AT_LEAST(5, 9, 0)
         TAINT_NOT; /* XXX: temp workaround, see my p5p post */
 #endif
         sv_setref_pv(server, "Apache2::ServerRec", (void*)s);

Modified: perl/modperl/trunk/src/modules/perl/modperl_common_util.c
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_common_util.c?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_common_util.c (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_common_util.c Tue Dec  5 02:01:08 2006
@@ -23,9 +23,8 @@
 
 #include "modperl_common_util.h"
 
-
 /* Prefetch magic requires perl 5.8 */
-#if ((PERL_REVISION == 5) && (PERL_VERSION >= 8))
+#if MP_PERL_VERSION_AT_LEAST(5, 8, 0)
 
 /* A custom MGVTBL with mg_copy slot filled in allows us to FETCH a
  * table entry immediately during iteration.  For multivalued keys
@@ -68,7 +67,7 @@
     sv_setref_pv(rsv, classname, p);
 
     /* Prefetch magic requires perl 5.8 */
-#if ((PERL_REVISION == 5) && (PERL_VERSION >= 8))
+#if MP_PERL_VERSION_AT_LEAST(5, 8, 0)
 
     sv_magicext(hv, NULL, PERL_MAGIC_ext, NULL, Nullch, -1);
     SvMAGIC(hv)->mg_virtual = (MGVTBL *)&modperl_table_magic_prefetch;

Modified: perl/modperl/trunk/src/modules/perl/modperl_common_util.h
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_common_util.h?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_common_util.h (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_common_util.h Tue Dec  5 02:01:08 2006
@@ -1,4 +1,3 @@
-
 /* Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -78,6 +77,18 @@
 #define MP_magical_tie(sv, mg_flags) \
     SvFLAGS((SV*)sv) |= mg_flags
 
+/* some wrapper macros to detect perl versions 
+ * and prevent code clutter */
+#define MP_PERL_VERSION_AT_LEAST(r, v, s)                                \
+    (PERL_REVISION == r &&                                               \
+    ((PERL_VERSION == v && PERL_SUBVERSION > s-1) || PERL_VERSION > v))
+
+#define MP_PERL_VERSION_AT_MOST(r, v, s)                                 \
+   (PERL_REVISION == r &&                                                \
+   (PERL_VERSION < v || (PERL_VERSION == v && PERL_SUBVERSION < s+1)))
+
+#define MP_PERL_VERSION(r, v, s)                                         \
+  (PERL_REVISION == r && PERL_VERSION == v && PERL_SUBVERSION == s)
 
 /* tie %hash */
 MP_INLINE SV *modperl_hash_tie(pTHX_ const char *classname,

Modified: perl/modperl/trunk/src/modules/perl/modperl_interp.c
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_interp.c?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_interp.c (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_interp.c Tue Dec  5 02:01:08 2006
@@ -79,7 +79,7 @@
 
         interp->perl = perl_clone(perl, clone_flags);
 
-#if PERL_REVISION == 5 && PERL_VERSION == 8 && PERL_SUBVERSION == 0 && \
+#if MP_PERL_VERSION(5, 8, 0) && \
     defined(USE_REENTRANT_API) && defined(HAS_CRYPT_R) && defined(__GLIBC__)
         {
             dTHXa(interp->perl);

Modified: perl/modperl/trunk/src/modules/perl/modperl_interp.h
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_interp.h?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_interp.h (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_interp.h Tue Dec  5 02:01:08 2006
@@ -36,9 +36,7 @@
  * cleaner solution. of course it must be really fast.
  */
 #ifndef HvPMROOT
-# if PERL_REVISION == 5 && \
-    ((PERL_VERSION == 9 && PERL_SUBVERSION > 4) || \
-    PERL_VERSION > 9)
+# if MP_PERL_VERSION_AT_LEAST(5, 9, 5)
 #define MP_THX_INTERP_GET(thx)                                  \
     (modperl_interp_t *) ((XPVMG*)SvANY(*Perl_Imodglobal_ptr(thx)))->xmg_u.xmg_magic
 # else
@@ -51,9 +49,7 @@
 #endif
 
 #ifndef HvPMROOT
-# if PERL_REVISION == 5 && \
-    ((PERL_VERSION == 9 && PERL_SUBVERSION > 4) || \
-    PERL_VERSION > 9)
+# if MP_PERL_VERSION_AT_LEAST(5, 9, 5)
 #define MP_THX_INTERP_SET(thx, interp)                          \
     ((XPVMG*)SvANY(*Perl_Imodglobal_ptr(thx)))->xmg_u.xmg_magic = (MAGIC*)interp
 # else

Modified: perl/modperl/trunk/src/modules/perl/modperl_io.h
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_io.h?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_io.h (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_io.h Tue Dec  5 02:01:08 2006
@@ -24,7 +24,7 @@
  * from living in the gv to the GvIOp(gv), so we have to deal
  * with both to support 5.6.x
  */
-#if ((PERL_REVISION == 5) && (PERL_VERSION >= 7))
+#if MP_PERL_VERSION_AT_LEAST(5, 7, 0)
 #   define TIEHANDLE_SV(handle) (SV*)GvIOp((SV*)handle)
 #else
 #   define TIEHANDLE_SV(handle) (SV*)handle

Modified: perl/modperl/trunk/src/modules/perl/modperl_perl.c
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_perl.c?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_perl.c (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_perl.c Tue Dec  5 02:01:08 2006
@@ -200,8 +200,7 @@
      }
 }
 
-#if !(PERL_REVISION == 5 && ( PERL_VERSION < 8 ||    \
-    (PERL_VERSION == 8 && PERL_SUBVERSION == 0))) && \
+#if !(MP_PERL_VERSION_AT_MOST(5, 8, 0)) && \
     (defined(USE_HASH_SEED) || defined(USE_HASH_SEED_EXPLICIT))
 #define MP_NEED_HASH_SEED_FIXUP
 #endif
@@ -258,7 +257,7 @@
 {
 #ifdef MP_NEED_HASH_SEED_FIXUP
     if (MP_init_hash_seed_set) {
-#if PERL_REVISION == 5 && PERL_VERSION == 8 && PERL_SUBVERSION == 1
+#if MP_PERL_VERSION(5, 8, 1)
         PL_hash_seed       = MP_init_hash_seed;
         PL_hash_seed_set   = MP_init_hash_seed_set;
 #else

Modified: perl/modperl/trunk/src/modules/perl/modperl_perl.h
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_perl.h?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_perl.h (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_perl.h Tue Dec  5 02:01:08 2006
@@ -22,7 +22,7 @@
  * need to do that for those fake 5.8.0 as well. real 5.8.0 doesn't
  * have THREADS_HAVE_PIDS defined.
  */
-#if PERL_REVISION == 5 && PERL_VERSION >= 8 && THREADS_HAVE_PIDS
+#if MP_PERL_VERSION_AT_LEAST(5, 8, 0) && THREADS_HAVE_PIDS
 #define MP_MAINTAIN_PPID
 #endif
 

Modified: perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_perl_includes.h Tue Dec  5 02:01:08 2006
@@ -77,18 +77,6 @@
 #   endif
 #endif
 
-#if (PERL_REVISION == 5) && (PERL_VERSION == 6)
-#   define MP_PERL_5_6_x
-#endif
-
-#if defined(MP_PERL_5_6_x) && (PERL_SUBVERSION == 0)
-#   define MP_PERL_5_6_0
-#endif
-
-#if defined(MP_PERL_5_6_x) && (PERL_SUBVERSION == 1)
-#   define MP_PERL_5_6_1
-#endif
-
 #include "modperl_perl_unembed.h"
 
 /* avoiding -Wall warning */

Modified: perl/modperl/trunk/src/modules/perl/modperl_perl_pp.h
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_perl_pp.h?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_perl_pp.h (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_perl_pp.h Tue Dec  5 02:01:08 2006
@@ -17,7 +17,10 @@
 #ifndef MODPERL_PERL_PP_H
 #define MODPERL_PERL_PP_H
 
-#if defined(USE_ITHREADS) && defined(MP_PERL_5_6_x)
+#define MP_PERL_BRANCH(r, v)                                             \
+    (PERL_REVISION == r && PERL_VERSION == v)
+
+#if defined(USE_ITHREADS) && MP_PERL_BRANCH(5, 6)
 #   define MP_REFGEN_FIXUP
 #endif
 

Modified: perl/modperl/trunk/src/modules/perl/modperl_svptr_table.c
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_svptr_table.c?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_svptr_table.c (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_svptr_table.c Tue Dec  5 02:01:08 2006
@@ -29,7 +29,7 @@
 
 #ifdef USE_ITHREADS
 
-#ifdef MP_PERL_5_6_x
+#if MP_PERL_BRANCH(5, 6)
 #   define my_sv_dup(s, p) sv_dup(s)
 
 typedef struct {

Modified: perl/modperl/trunk/src/modules/perl/modperl_util.h
URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_util.h?view=diff&rev=482563&r1=482562&r2=482563
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_util.h (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_util.h Tue Dec  5 02:01:08 2006
@@ -149,17 +149,4 @@
 SV *modperl_pnotes(pTHX_ HV **pnotes, SV *key, SV *val,
                    request_rec *r, conn_rec *c);
 
-/* some wrapper macros to detect perl versions 
- * and prevent code clutter */
-#define MP_PERL_VERSION_AT_LEAST(r, v, s)                                \
-    (PERL_REVISION == r &&                                               \
-    ((PERL_VERSION == v && PERL_SUBVERSION >= s) || PERL_VERSION > v))
-
-#define MP_PERL_VERSION_AT_MOST(r, v, s)                                 \
-   (PERL_REVISION == r &&                                                \
-   (PERL_VERSION < v || (PERL_VERSION == v && PERL_SUBVERSION =< s)))
-
-#define MP_PERL_VERSION(r, v, s)                                         \
-  (PERL_REVISION == r && PERL_VERSION == v && PERL_SUBVERSION == s)
-
 #endif /* MODPERL_UTIL_H */