aboutsummaryrefslogtreecommitdiff
path: root/Lib/perl5
diff options
context:
space:
mode:
authorRobert Stone <talby@trap.mtview.ca.us>2013-11-12 12:45:03 -0800
committerRobert Stone <talby@trap.mtview.ca.us>2013-11-12 12:45:03 -0800
commit0901a3e867a733cbede8b034f92c964025c38c8a (patch)
treeaeddf955961198264eded44bc112213158c7281f /Lib/perl5
parentc151a0d69ae4d9e415abc5600330e152831c1fea (diff)
downloadswig-0901a3e867a733cbede8b034f92c964025c38c8a.tar.gz
steals python directors and adapts to perl5
Diffstat (limited to 'Lib/perl5')
-rw-r--r--Lib/perl5/perlrun.swg3
-rw-r--r--Lib/perl5/perltypemaps.swg6
2 files changed, 5 insertions, 4 deletions
diff --git a/Lib/perl5/perlrun.swg b/Lib/perl5/perlrun.swg
index ebc4fecd5..4e31c4754 100644
--- a/Lib/perl5/perlrun.swg
+++ b/Lib/perl5/perlrun.swg
@@ -20,6 +20,7 @@
#define SWIG_ConvertPtr(obj, pp, type, flags) SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags)
#define SWIG_ConvertPtrAndOwn(obj, pp, type, flags,own) SWIG_Perl_ConvertPtrAndOwn(SWIG_PERL_OBJECT_CALL obj, pp, type, flags, own)
#define SWIG_NewPointerObj(p, type, flags) SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags)
+#define swig_owntype int
/* for raw packed data */
#define SWIG_ConvertPacked(obj, p, s, type) SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type)
@@ -288,7 +289,7 @@ SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_
/* Now see if the types match */
char *_c = HvNAME(SvSTASH(SvRV(sv)));
tc = SWIG_TypeProxyCheck(_c,_t);
- if (!tc) {
+ if (!tc && !sv_derived_from(sv,SWIG_Perl_TypeProxyName(_t))) {
return SWIG_ERROR;
}
{
diff --git a/Lib/perl5/perltypemaps.swg b/Lib/perl5/perltypemaps.swg
index fc7100e89..f47a5ef82 100644
--- a/Lib/perl5/perltypemaps.swg
+++ b/Lib/perl5/perltypemaps.swg
@@ -35,9 +35,9 @@
* Unified typemap section
* ------------------------------------------------------------ */
-/* No director supported in Perl */
-#ifdef SWIG_DIRECTOR_TYPEMAPS
-#undef SWIG_DIRECTOR_TYPEMAPS
+/* director support in Perl is experimental */
+#ifndef SWIG_DIRECTOR_TYPEMAPS
+#define SWIG_DIRECTOR_TYPEMAPS
#endif