ext\ExtUtils\t\Embed.t fails test when upgrading a perl with different core headers.
[p5sagit/p5-mst-13.2.git] / ext / DB_File / typemap
index 994ba27..077a95c 100644 (file)
@@ -1,8 +1,8 @@
 # typemap for Perl 5 interface to Berkeley 
 #
 # written by Paul Marquess <Paul.Marquess@btinternet.com>
-# last modified 21st February 1999
-# version 1.65
+# last modified 20th June 2004
+# version 1.809
 #
 #################################### DB SECTION
 #
@@ -15,21 +15,35 @@ DBTKEY                      T_dbtkeydatum
 
 INPUT
 T_dbtkeydatum
-       if (db->type != DB_RECNO) {
-           $var.data = SvPV($arg, PL_na);
-           $var.size = (int)PL_na;
-           DBT_flags($var);
-       }
-       else {
-           Value =  GetRecnoKey(db, SvIV($arg)) ; 
+    {
+       SV * my_sv = $arg;
+       DBM_ckFilter(my_sv, filter_store_key, \"filter_store_key\");
+       DBT_clear($var) ;
+       SvGETMAGIC(my_sv) ;
+        if (db->type == DB_RECNO) {
+           if (SvOK(my_sv))
+               Value = GetRecnoKey(aTHX_ db, SvIV(my_sv)) ; 
+            else
+               Value = 1 ;
            $var.data = & Value; 
            $var.size = (int)sizeof(recno_t);
-           DBT_flags($var);
+        }
+        else if (SvOK(my_sv)) {
+           $var.data = SvPVbyte(my_sv, PL_na);
+           $var.size = (int)PL_na;
        }
+    }
 T_dbtdatum
-       $var.data = SvPV($arg, PL_na);
-       $var.size = (int)PL_na;
-       DBT_flags($var);
+    {
+       SV * my_sv = $arg;
+       DBM_ckFilter(my_sv, filter_store_value, \"filter_store_value\");
+       DBT_clear($var) ;
+       SvGETMAGIC(my_sv) ;
+       if (SvOK(my_sv)) {
+           $var.data = SvPVbyte(my_sv, PL_na);
+           $var.size = (int)PL_na;
+       }
+    }
 
 OUTPUT