summaryrefslogtreecommitdiff
path: root/universal.c
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2017-03-17 13:15:13 +0000
committerDavid Mitchell <davem@iabyn.com>2017-03-17 14:10:14 +0000
commit7bfe3bfdd4427cdc26a2581cc633e3fb5582ce70 (patch)
tree6445abb6d82da6875a1e12b79c25d7c39b64e9fc /universal.c
parenta5555695d6543e0b1a47bec20245db4878556a6d (diff)
downloadperl-7bfe3bfdd4427cdc26a2581cc633e3fb5582ce70.tar.gz
PERL_GLOBAL_STRUCT_PRIVATE: fix PL_isa_DOES
I added the global string constant PL_isa_DOES recently. This caused t/porting/libperl.t to fail under -DPERL_GLOBAL_STRUCT_PRIVATE builds. This commit makes PL_isa_DOES be declared and defined in a similar way to other such global constants. This is pure cargo-culting - I have no real idea of the point of all the EXTCONST, INIT and globvar.sym stuff.
Diffstat (limited to 'universal.c')
-rw-r--r--universal.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/universal.c b/universal.c
index 88835f9d78..be39310da7 100644
--- a/universal.c
+++ b/universal.c
@@ -184,11 +184,6 @@ The SV can be a Perl object or the name of a Perl class.
#include "XSUB.h"
-/* a special string address whose value is "isa", but which perl knows
- * to treat as if it were really "DOES" when printing the method name in
- * the "Can't call method '%s'" error message */
-char PL_isa_DOES[] = "isa";
-
bool
Perl_sv_does_sv(pTHX_ SV *sv, SV *namesv, U32 flags)
{
@@ -232,7 +227,7 @@ Perl_sv_does_sv(pTHX_ SV *sv, SV *namesv, U32 flags)
methodname = newSV_type(SVt_PV);
SvLEN(methodname) = 0;
SvCUR(methodname) = strlen(PL_isa_DOES);
- SvPVX(methodname) = PL_isa_DOES;
+ SvPVX(methodname) = (char *)PL_isa_DOES; /* discard 'const' qualifier */
SvPOK_on(methodname);
sv_2mortal(methodname);
call_sv(methodname, G_SCALAR | G_METHOD);