Rewrite thread destruction system using linked list of threads.
[p5sagit/p5-mst-13.2.git] / typemap
diff --git a/typemap b/typemap
index 9a79e40..fd6e99d 100644 (file)
--- a/typemap
+++ b/typemap
@@ -9,7 +9,8 @@ T_XSCPTR
            if (!sv_isobject(sv))
                croak(\"$var is not an object\");
            sv = (SV*)SvRV(sv);
-           if (!SvRMAGICAL(sv) || !(mg = mg_find(sv, '~')))
+           if (!SvRMAGICAL(sv) || !(mg = mg_find(sv, '~'))
+               || mg->mg_private != ${ntype}_MAGIC_SIGNATURE)
                croak(\"XSUB ${func_name}: $var is a forged ${ntype} object\");
            $var = ($type) SvPVX(mg->mg_obj);
            DEBUG_L(PerlIO_printf(PerlIO_stderr(),