diff options
-rw-r--r-- | gv.c | 3 | ||||
-rw-r--r-- | overload.c | 1 | ||||
-rw-r--r-- | overload.pl | 1 |
3 files changed, 4 insertions, 1 deletions
@@ -2037,7 +2037,8 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags) PUSHs(lr>0? left: right); PUSHs( lr > 0 ? &PL_sv_yes : ( assign ? &PL_sv_undef : &PL_sv_no )); if (notfound) { - PUSHs( sv_2mortal(newSVpv(AMG_id2name(method + assignshift),0))); + PUSHs( sv_2mortal(newSVpvn(AMG_id2name(method + assignshift), + AMG_id2namelen(method + assignshift)))); } PUSHs((SV*)cv); PUTBACK; diff --git a/overload.c b/overload.c index bb7f1cbeef..eaaef2154e 100644 --- a/overload.c +++ b/overload.c @@ -13,6 +13,7 @@ */ #define AMG_id2name(id) (PL_AMG_names[id]+1) +#define AMG_id2namelen(id) (PL_AMG_namelens[id]-1) const U8 PL_AMG_namelens[NofAMmeth] = { 2, diff --git a/overload.pl b/overload.pl index 6b1050e685..a86222edf5 100644 --- a/overload.pl +++ b/overload.pl @@ -70,6 +70,7 @@ EOF print C <<'EOF'; #define AMG_id2name(id) (PL_AMG_names[id]+1) +#define AMG_id2namelen(id) (PL_AMG_namelens[id]-1) const U8 PL_AMG_namelens[NofAMmeth] = { EOF |