stas 2003/08/27 18:56:03
Modified: xs/APR/PerlIO apr_perlio.c
Log:
can't use modperl_perl_gensym outside modperl, temp copy the function
Revision Changes Path
1.30 +12 -3 modperl-2.0/xs/APR/PerlIO/apr_perlio.c
Index: apr_perlio.c
===================================================================
RCS file: /home/cvs/modperl-2.0/xs/APR/PerlIO/apr_perlio.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -u -r1.29 -r1.30
--- apr_perlio.c 20 Aug 2003 23:53:16 -0000 1.29
+++ apr_perlio.c 28 Aug 2003 01:56:03 -0000 1.30
@@ -3,6 +3,16 @@
#include "mod_perl.h"
#include "apr_perlio.h"
+/* XXX: modperl_perl_gensym() cannot be used outside of httpd */
+static SV *apr_perlio_gensym(pTHX_ char *pack)
+{
+ GV *gv = newGVgen(pack);
+ SV *rv = newRV((SV*)gv);
+ (void)hv_delete(gv_stashpv(pack, TRUE),
+ GvNAME(gv), GvNAMELEN(gv), G_DISCARD);
+ return rv;
+}
+
#if defined(PERLIO_LAYERS) && defined(PERLIO_K_MULTIARG) /* 5.7.2+ */
/**********************************************************************
@@ -483,8 +493,7 @@
static SV *apr_perlio_PerlIO_to_glob(pTHX_ PerlIO *pio, apr_perlio_hook_e type)
{
- /* XXX: modperl_perl_gensym() cannot be used outside of httpd */
- SV *retval = modperl_perl_gensym(aTHX_ "APR::PerlIO");
+ SV *retval = apr_perlio_gensym(aTHX_ "APR::PerlIO");
GV *gv = (GV*)SvRV(retval);
gv_IOadd(gv);
@@ -573,7 +582,7 @@
apr_perlio_hook_e type)
{
/* XXX: modperl_perl_gensym() cannot be used outside of httpd */
- SV *retval = modperl_perl_gensym(aTHX_ "APR::PerlIO");
+ SV *retval = apr_perlio_gensym(aTHX_ "APR::PerlIO");
GV *gv = (GV*)SvRV(retval);
gv_IOadd(gv);