Author: timbo
Date: Fri Dec 15 16:52:06 2006
New Revision: 8394

Modified:
   dbi/trunk/Changes
   dbi/trunk/DBI.xs

Log:
Fixed to compile for perl built with -DNO_MATHOMS thanks to Jerry D. Hedden.
Fixed to work for bleadperl (r29544) thanks to Nicholas Clark.


Modified: dbi/trunk/Changes
==============================================================================
--- dbi/trunk/Changes   (original)
+++ dbi/trunk/Changes   Fri Dec 15 16:52:06 2006
@@ -9,6 +9,9 @@
   Fixed type_info when called for multiple dbh thanks to Cosimo Streppone.
   Fixed compile warnings in bleadperl on freebsd-6.1-release
     and solaris 10g thanks to Philip M. Gollucci.
+  Fixed to compile for perl built with -DNO_MATHOMS thanks to Jerry D. Hedden.
+  Fixed to work for bleadperl (r29544) thanks to Nicholas Clark.
+    Users of Perl >= 5.9.5 will require DBI >= 1.54.
   Changed t/40profile.t to skip tests for perl < 5.8.0.
   Updated DBI::DBD docs for driver authors thanks to Ammon Riley.
 

Modified: dbi/trunk/DBI.xs
==============================================================================
--- dbi/trunk/DBI.xs    (original)
+++ dbi/trunk/DBI.xs    Fri Dec 15 16:52:06 2006
@@ -1435,7 +1435,9 @@
         return 1;
     }
 
-    if (!SvROK(ref) || SvTYPE(SvRV(ref)) >= SVt_PVBM)  /* XXX LV */
+    /* Write this as > SVt_PVMG because in 5.8.x the next type */
+    /* is SVt_PVBM, whereas in 5.9.x it's SVt_PVGV.            */
+    if (!SvROK(ref) || SvTYPE(SvRV(ref)) > SVt_PVMG) /* XXX LV */
        croak("Can't %s->bind_col(%s, %s,...), need a reference to a scalar",
                neatsvpv(sth,0), neatsvpv(col,0), neatsvpv(ref,0));
 
@@ -2367,7 +2369,11 @@
                             /* just using SvPV_nolen(method) sometimes causes 
an error:        */
                             /* "Can't coerce GLOB to string" so we use 
gv_efullname()  */
                             SV *tmpsv = sv_2mortal(newSVpv("",0));
+#if (PERL_VERSION < 6)
                             gv_efullname(tmpsv, (GV*)method);
+#else
+                            gv_efullname4(tmpsv, (GV*)method, "", TRUE);
+#endif
                             p = SvPV_nolen(tmpsv);
                             if (*p == '*') ++p; /* skip past leading '*' glob 
sigil */
                         }

Reply via email to