summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gv.c3
-rw-r--r--overload.c1
-rw-r--r--overload.pl1
3 files changed, 4 insertions, 1 deletions
diff --git a/gv.c b/gv.c
index a9eb65a853..d34d04328c 100644
--- a/gv.c
+++ b/gv.c
@@ -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