swig/swig-2.0.3-perl512.patch

20 lines
623 B
Diff

--- trunk/Lib/perl5/perlrun.swg 2011/05/19 18:48:57 12690
+++ trunk/Lib/perl5/perlrun.swg 2011/05/19 19:31:39 12691
@@ -274,8 +274,14 @@
return SWIG_OK;
} else if (SvTYPE(sv) == SVt_RV) { /* Check for NULL pointer */
if (!SvROK(sv)) {
- *(ptr) = (void *) 0;
- return SWIG_OK;
+ /* In Perl 5.12 and later, SVt_RV == SVt_IV, so sv could be a valid integer value. */
+ if (SvIOK(sv)) {
+ return SWIG_ERROR;
+ } else {
+ /* NULL pointer (reference to undef). */
+ *(ptr) = (void *) 0;
+ return SWIG_OK;
+ }
} else {
return SWIG_ERROR;
}