This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
const a PERLIO vtable in PerlIO::encoding
authorDaniel Dragan <bulk88@hotmail.com>
Mon, 5 Jan 2015 06:27:11 +0000 (01:27 -0500)
committerFather Chrysostomos <sprout@cpan.org>
Tue, 6 Jan 2015 02:01:39 +0000 (18:01 -0800)
This makes PerlIO::encoding's shared library free of any perl caused RW
static data.

ext/PerlIO-encoding/encoding.pm
ext/PerlIO-encoding/encoding.xs

index 47ad946..4cff76d 100644 (file)
@@ -1,7 +1,7 @@
 package PerlIO::encoding;
 
 use strict;
-our $VERSION = '0.20';
+our $VERSION = '0.21';
 our $DEBUG = 0;
 $DEBUG and warn __PACKAGE__, " called by ", join(", ", caller), "\n";
 
index d41227c..03b8850 100644 (file)
@@ -602,7 +602,7 @@ PerlIOEncode_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count)
     }
 }
 
-PerlIO_funcs PerlIO_encode = {
+PERLIO_FUNCS_DECL(PerlIO_encode) = {
     sizeof(PerlIO_funcs),
     "encoding",
     sizeof(PerlIOEncode),
@@ -666,7 +666,7 @@ BOOT:
     sv_setsv(chk, POPs);
     PUTBACK;
 #ifdef PERLIO_LAYERS
-    PerlIO_define_layer(aTHX_ &PerlIO_encode);
+    PerlIO_define_layer(aTHX_ PERLIO_FUNCS_CAST(&PerlIO_encode));
 #endif
     POPSTACK;
 }