Author: gozer
Date: Thu Jan 27 17:06:30 2005
New Revision: 137624

URL: http://svn.apache.org/viewcvs?view=rev&rev=137624
Log:
Perl -Duse64bit fix. Pointers can't just be generically
casted from/to IVs. Use PTR2IV/INT2PTR instead.


Modified:
   perl/modperl/trunk/Changes
   perl/modperl/trunk/lib/ModPerl/TypeMap.pm
   perl/modperl/trunk/src/modules/perl/modperl_common_util.c
   perl/modperl/trunk/src/modules/perl/modperl_handler.c
   perl/modperl/trunk/src/modules/perl/modperl_module.c
   perl/modperl/trunk/src/modules/perl/modperl_util.c
   perl/modperl/trunk/xs/APR/PerlIO/modperl_apr_perlio.c
   perl/modperl/trunk/xs/APR/Table/APR__Table.h
   perl/modperl/trunk/xs/Apache/Filter/Apache__Filter.h
   perl/modperl/trunk/xs/Apache/Log/Apache__Log.h
   perl/modperl/trunk/xs/modperl_xs_util.h
   perl/modperl/trunk/xs/typemap

Modified: perl/modperl/trunk/Changes
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/Changes?view=diff&rev=137624&p1=perl/modperl/trunk/Changes&r1=137623&p2=perl/modperl/trunk/Changes&r2=137624
==============================================================================
--- perl/modperl/trunk/Changes  (original)
+++ perl/modperl/trunk/Changes  Thu Jan 27 17:06:30 2005
@@ -12,6 +12,9 @@
 
 =item 1.999_22
 
+Perl -Duse64bit fix. Pointers can't just be generically
+casted from/to IVs. Use PTR2IV/INT2PTR instead. [Gozer]
+
 Perl -Duse64bit fix. apr_size_t pointers can't just be generically
 casted from/to UVs. Use PTR2UV/INT2PTR instead. [Gozer]
 

Modified: perl/modperl/trunk/lib/ModPerl/TypeMap.pm
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/lib/ModPerl/TypeMap.pm?view=diff&rev=137624&p1=perl/modperl/trunk/lib/ModPerl/TypeMap.pm&r1=137623&p2=perl/modperl/trunk/lib/ModPerl/TypeMap.pm&r2=137624
==============================================================================
--- perl/modperl/trunk/lib/ModPerl/TypeMap.pm   (original)
+++ perl/modperl/trunk/lib/ModPerl/TypeMap.pm   Thu Jan 27 17:06:30 2005
@@ -487,7 +487,7 @@
 #define $define(sv) \\
 ((SvROK(sv) && (SvTYPE(SvRV(sv)) == SVt_PVMG)) \\
 || (Perl_croak(aTHX_ "$croak ($expect)"),0) ? \\
-($ctype *)SvIV((SV*)SvRV(sv)) : ($ctype *)NULL)
+INT2PTR($ctype *, SvIV((SV*)SvRV(sv))) : ($ctype *)NULL)
 
 EOF
 

Modified: perl/modperl/trunk/src/modules/perl/modperl_common_util.c
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_common_util.c?view=diff&rev=137624&p1=perl/modperl/trunk/src/modules/perl/modperl_common_util.c&r1=137623&p2=perl/modperl/trunk/src/modules/perl/modperl_common_util.c&r2=137624
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_common_util.c   (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_common_util.c   Thu Jan 27 
17:06:30 2005
@@ -121,7 +121,7 @@
 {
     SV *rv = modperl_hash_tied_object_rv(aTHX_ classname, tsv);
     if (SvROK(rv)) {
-        return (void *)SvIVX(SvRV(rv));
+        return INT2PTR(void *, SvIVX(SvRV(rv)));
     }
     else {
         return NULL;

Modified: perl/modperl/trunk/src/modules/perl/modperl_handler.c
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_handler.c?view=diff&rev=137624&p1=perl/modperl/trunk/src/modules/perl/modperl_handler.c&r1=137623&p2=perl/modperl/trunk/src/modules/perl/modperl_handler.c&r2=137624
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_handler.c       (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_handler.c       Thu Jan 27 
17:06:30 2005
@@ -320,7 +320,7 @@
             }
           case 'I':
             if (strEQ(classname, "IV")) {
-                sv = ptr ? newSViv((IV)ptr) : &PL_sv_undef;
+                sv = ptr ? newSViv(PTR2IV(ptr)) : &PL_sv_undef;
                 break;
             }
           case 'P':

Modified: perl/modperl/trunk/src/modules/perl/modperl_module.c
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_module.c?view=diff&rev=137624&p1=perl/modperl/trunk/src/modules/perl/modperl_module.c&r1=137623&p2=perl/modperl/trunk/src/modules/perl/modperl_module.c&r2=137624
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_module.c        (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_module.c        Thu Jan 27 
17:06:30 2005
@@ -76,7 +76,7 @@
 void modperl_module_config_table_set(pTHX_ PTR_TBL_t *table)
 {
     SV **svp = modperl_module_config_hash_get(aTHX_ TRUE);
-    sv_setiv(*svp, (IV)table);
+    sv_setiv(*svp, PTR2IV(table));
 }
 
 PTR_TBL_t *modperl_module_config_table_get(pTHX_ int create)
@@ -92,10 +92,10 @@
     sv = *svp;
     if (!SvIOK(sv) && create) {
         table = modperl_svptr_table_new(aTHX);
-        sv_setiv(sv, (IV)table);
+        sv_setiv(sv, PTR2IV(table));
     }
     else {
-        table = (PTR_TBL_t *)SvIV(sv);
+        table = INT2PTR(PTR_TBL_t *, SvIV(sv));
     }
 
     return table;

Modified: perl/modperl/trunk/src/modules/perl/modperl_util.c
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_util.c?view=diff&rev=137624&p1=perl/modperl/trunk/src/modules/perl/modperl_util.c&r1=137623&p2=perl/modperl/trunk/src/modules/perl/modperl_util.c&r2=137624
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_util.c  (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_util.c  Thu Jan 27 17:06:30 2005
@@ -98,7 +98,7 @@
 MP_INLINE server_rec *modperl_sv2server_rec(pTHX_ SV *sv)
 {
     if (SvOBJECT(sv) || (SvROK(sv) && (SvTYPE(SvRV(sv)) == SVt_PVMG))) {
-        return (server_rec *)SvObjIV(sv);
+        return INT2PTR(server_rec *, SvObjIV(sv));
     }
 
     /* next see if we have Apache->request available */
@@ -164,7 +164,7 @@
             /* XXX: find something faster than sv_derived_from */
             return NULL;
         }
-        return (request_rec *)SvIV(sv);
+        return INT2PTR(request_rec *, SvIV(sv));
     }
 
     return NULL;
@@ -288,7 +288,7 @@
                        dl_librefs, (int)i);
            continue;
        }
-       handle = (void *)SvIV(handle_sv);
+       handle = INT2PTR(void *, SvIV(handle_sv));
 
        MP_TRACE_r(MP_FUNC, "%s dl handle == 0x%lx\n",
                    SvPVX(module_sv), (unsigned long)handle);
@@ -349,7 +349,7 @@
     AV *librefs = get_av(dl_librefs, 0);
     SV *libref = *av_fetch(librefs, dl_index, 0);
 
-    modperl_sys_dlclose((void *)SvIV(libref));
+    modperl_sys_dlclose(INT2PTR(void *, SvIV(libref)));
 
     /* remove package from @dl_librefs and @dl_modules */
     modperl_av_remove_entry(aTHX_ get_av(dl_librefs, 0), dl_index);

Modified: perl/modperl/trunk/xs/APR/PerlIO/modperl_apr_perlio.c
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/xs/APR/PerlIO/modperl_apr_perlio.c?view=diff&rev=137624&p1=perl/modperl/trunk/xs/APR/PerlIO/modperl_apr_perlio.c&r1=137623&p2=perl/modperl/trunk/xs/APR/PerlIO/modperl_apr_perlio.c&r2=137624
==============================================================================
--- perl/modperl/trunk/xs/APR/PerlIO/modperl_apr_perlio.c       (original)
+++ perl/modperl/trunk/xs/APR/PerlIO/modperl_apr_perlio.c       Thu Jan 27 
17:06:30 2005
@@ -110,7 +110,7 @@
     /* XXX: should probably add checks on pool validity in all other callbacks 
*/
     sv = args[narg-1];
     if (SvROK(sv) && (SvTYPE(SvRV(sv)) == SVt_PVMG)) {
-        st->pool = (apr_pool_t *)SvIV((SV*)SvRV(sv));
+        st->pool = INT2PTR(apr_pool_t *, SvIV((SV*)SvRV(sv)));
     }
     else {
         Perl_croak(aTHX_ "argument is not a blessed reference "

Modified: perl/modperl/trunk/xs/APR/Table/APR__Table.h
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/xs/APR/Table/APR__Table.h?view=diff&rev=137624&p1=perl/modperl/trunk/xs/APR/Table/APR__Table.h&r1=137623&p2=perl/modperl/trunk/xs/APR/Table/APR__Table.h&r2=137624
==============================================================================
--- perl/modperl/trunk/xs/APR/Table/APR__Table.h        (original)
+++ perl/modperl/trunk/xs/APR/Table/APR__Table.h        Thu Jan 27 17:06:30 2005
@@ -153,7 +153,7 @@
                    "first argument not an APR::Table object");
     }
 
-    t = (apr_table_t *)SvIVX(SvRV(rv)); 
+    t = INT2PTR(apr_table_t *, SvIVX(SvRV(rv))); 
 
     if (apr_is_empty_table(t)) {
         return NULL;
@@ -180,7 +180,7 @@
 {
     SV* rv = modperl_hash_tied_object_rv(aTHX_ "APR::Table", tsv);
     const int i = mpxs_apr_table_iterix(rv);
-    apr_table_t *t = (apr_table_t *)SvIVX(SvRV(rv));
+    apr_table_t *t = INT2PTR(apr_table_t *, SvIVX(SvRV(rv)));
     const apr_array_header_t *arr = apr_table_elts(t);
     apr_table_entry_t *elts = (apr_table_entry_t *)arr->elts;
 

Modified: perl/modperl/trunk/xs/Apache/Filter/Apache__Filter.h
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/xs/Apache/Filter/Apache__Filter.h?view=diff&rev=137624&p1=perl/modperl/trunk/xs/Apache/Filter/Apache__Filter.h&r1=137623&p2=perl/modperl/trunk/xs/Apache/Filter/Apache__Filter.h&r2=137624
==============================================================================
--- perl/modperl/trunk/xs/Apache/Filter/Apache__Filter.h        (original)
+++ perl/modperl/trunk/xs/Apache/Filter/Apache__Filter.h        Thu Jan 27 
17:06:30 2005
@@ -292,7 +292,7 @@
 
     /* native filter */
     if (!modperl_filter) {
-        f = (ap_filter_t*)SvIV(SvRV(*MARK));
+        f = INT2PTR(ap_filter_t *, SvIV(SvRV(*MARK)));
         MP_TRACE_f(MP_FUNC,
                    "   %s\n\n\t non-modperl filter removes itself\n",
                    f->frec->name);

Modified: perl/modperl/trunk/xs/Apache/Log/Apache__Log.h
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/xs/Apache/Log/Apache__Log.h?view=diff&rev=137624&p1=perl/modperl/trunk/xs/Apache/Log/Apache__Log.h&r1=137623&p2=perl/modperl/trunk/xs/Apache/Log/Apache__Log.h&r2=137624
==============================================================================
--- perl/modperl/trunk/xs/Apache/Log/Apache__Log.h      (original)
+++ perl/modperl/trunk/xs/Apache/Log/Apache__Log.h      Thu Jan 27 17:06:30 2005
@@ -37,11 +37,11 @@
     request_rec *r = NULL;
 
     if (SvROK(sv) && sv_isa(sv, "Apache::Log::Request")) {
-        r = (request_rec *)SvObjIV(sv);
+        r = INT2PTR(request_rec *, SvObjIV(sv));
         s = r->server;
     }
     else if (SvROK(sv) && sv_isa(sv, "Apache::Log::Server")) {
-        s = (server_rec *)SvObjIV(sv);
+        s = INT2PTR(server_rec *, SvObjIV(sv));
     }
     else {
         s = modperl_global_get_server_rec();
@@ -288,7 +288,7 @@
 
     if (items > 1) {
         if (sv_isa(ST(0), "Apache::ServerRec")) {
-            s = (server_rec *)SvObjIV(ST(0));
+            s = INT2PTR(server_rec *, SvObjIV(ST(0)));
         }
         else if ((r = modperl_xs_sv2request_rec(aTHX_ ST(0),
                                                 "Apache::RequestRec", cv))) {

Modified: perl/modperl/trunk/xs/modperl_xs_util.h
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/xs/modperl_xs_util.h?view=diff&rev=137624&p1=perl/modperl/trunk/xs/modperl_xs_util.h&r1=137623&p2=perl/modperl/trunk/xs/modperl_xs_util.h&r2=137624
==============================================================================
--- perl/modperl/trunk/xs/modperl_xs_util.h     (original)
+++ perl/modperl/trunk/xs/modperl_xs_util.h     Thu Jan 27 17:06:30 2005
@@ -70,8 +70,9 @@
 #define mpxs_sv_is_object(sv)                           \
     (SvROK(sv) && (SvTYPE(SvRV(sv)) == SVt_PVMG))
 
-#define mpxs_sv_object_deref(sv, type)                            \
-    (mpxs_sv_is_object(sv) ? (type *)SvIVX((SV*)SvRV(sv)) : NULL)
+#define mpxs_sv_object_deref(sv, type)                  \
+    (mpxs_sv_is_object(sv) ?                            \
+        INT2PTR(type *, SvIVX((SV*)SvRV(sv))) : NULL) 
 
 #define mpxs_sv2_obj(obj, sv)                   \
     (obj = mp_xs_sv2_##obj(sv))

Modified: perl/modperl/trunk/xs/typemap
Url: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/xs/typemap?view=diff&rev=137624&p1=perl/modperl/trunk/xs/typemap&r1=137623&p2=perl/modperl/trunk/xs/typemap&r2=137624
==============================================================================
--- perl/modperl/trunk/xs/typemap       (original)
+++ perl/modperl/trunk/xs/typemap       Thu Jan 27 17:06:30 2005
@@ -56,7 +56,7 @@
 T_UVOBJ
        if (SvROK($arg) && sv_derived_from($arg, \"${ntype}\")) {
            UV tmp = SvUV((SV*)SvRV($arg));
-           $var = ($type)tmp;
+           $var = INT2PTR($type, tmp);
        }
        else {
            Perl_croak(aTHX_ SvROK($arg) ?

Reply via email to