You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2015/05/18 21:29:33 UTC

[07/10] lucy-clownfish git commit: Fix operator overloading under Perl 5.8.x

Fix operator overloading under Perl 5.8.x

Only turn it on when the class that the object belongs to actually
has overloading.


Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/74c1a3d6
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/74c1a3d6
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/74c1a3d6

Branch: refs/heads/master
Commit: 74c1a3d6c2d51f4b5843d671d0f19d9b26b18703
Parents: f049e48
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Mon May 18 13:07:30 2015 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Mon May 18 21:25:33 2015 +0200

----------------------------------------------------------------------
 runtime/perl/xs/XSBind.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/74c1a3d6/runtime/perl/xs/XSBind.c
----------------------------------------------------------------------
diff --git a/runtime/perl/xs/XSBind.c b/runtime/perl/xs/XSBind.c
index ba9af78..26a5f45 100644
--- a/runtime/perl/xs/XSBind.c
+++ b/runtime/perl/xs/XSBind.c
@@ -766,10 +766,15 @@ CFISH_Obj_To_Host_IMP(cfish_Obj *self) {
     else {
         perl_obj = newRV_inc((SV*)self->ref.host_obj);
     }
+
+    // Enable overloading for Perl 5.8.x
 #if PERL_VERSION <= 8
-    // Enable overloading.
-    SvAMAGIC_on(perl_obj);
+    HV *stash = SvSTASH((SV*)self->ref.host_obj);
+    if (Gv_AMG(stash)) {
+        SvAMAGIC_on(perl_obj);
+    }
 #endif
+
     return perl_obj;
 }