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) ?