This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade to PathTools-3.27
[perl5.git] / ext / GDBM_File / typemap
CommitLineData
8990e307
LW
1#
2#################################### DBM SECTION
3#
4
9fe6733a 5datum_key T_DATUM_K
5bbd4290 6datum_key_copy T_DATUM_K
9fe6733a 7datum_value T_DATUM_V
8990e307
LW
8NDBM_File T_PTROBJ
9GDBM_File T_PTROBJ
10SDBM_File T_PTROBJ
11ODBM_File T_PTROBJ
12DB_File T_PTROBJ
13DBZ_File T_PTROBJ
14FATALFUNC T_OPAQUEPTR
15
16INPUT
9fe6733a 17T_DATUM_K
6a31061a 18 DBM_ckFilter($arg, filter_store_key, \"filter_store_key\");
bfd025d9
NC
19 {
20 STRLEN len;
21 $var.dptr = SvPVbyte($arg, len);
22 $var.dsize = (int)len;
23 }
0bf2e707
PM
24T_DATUM_K_C
25 {
26 SV * tmpSV;
bfd025d9 27 STRLEN len;
0bf2e707
PM
28 if (db->filter_store_key) {
29 tmpSV = sv_2mortal(newSVsv($arg));
6a31061a 30 DBM_ckFilter(tmpSV, filter_store_key, \"filter_store_key\");
0bf2e707
PM
31 }
32 else
33 tmpSV = $arg;
bfd025d9
NC
34 $var.dptr = SvPVbyte(tmpSV, len);
35 $var.dsize = (int)len;
0bf2e707 36 }
9fe6733a 37T_DATUM_V
6a31061a 38 DBM_ckFilter($arg, filter_store_value, \"filter_store_value\");
cbc5248d 39 if (SvOK($arg)) {
bfd025d9
NC
40 STRLEN len;
41 $var.dptr = SvPVbyte($arg, len);
42 $var.dsize = (int)len;
cbc5248d
PM
43 }
44 else {
d3f5e399
RB
45 $var.dptr = (char *)\"\";
46 /* better would be for .dptr to be const char * */
cbc5248d
PM
47 $var.dsize = 0;
48 }
8990e307 49OUTPUT
9fe6733a 50T_DATUM_K
caa0600b 51 output_datum(aTHX_ $arg, $var.dptr, $var.dsize);
6a31061a 52 DBM_ckFilter($arg, filter_fetch_key,\"filter_fetch_key\");
9fe6733a 53T_DATUM_V
caa0600b 54 output_datum(aTHX_ $arg, $var.dptr, $var.dsize);
6a31061a 55 DBM_ckFilter($arg, filter_fetch_value,\"filter_fetch_value\");
4e2a63a7
PM
56T_PTROBJ
57 sv_setref_pv($arg, dbtype, (void*)$var);