Commit | Line | Data |
---|---|---|
8990e307 LW |
1 | # |
2 | #################################### DBM SECTION | |
3 | # | |
4 | ||
9fe6733a | 5 | datum_key T_DATUM_K |
0bf2e707 | 6 | datum_key_copy T_DATUM_K_C |
9fe6733a | 7 | datum_value T_DATUM_V |
8990e307 LW |
8 | gdatum T_GDATUM |
9 | NDBM_File T_PTROBJ | |
10 | GDBM_File T_PTROBJ | |
11 | SDBM_File T_PTROBJ | |
12 | ODBM_File T_PTROBJ | |
13 | DB_File T_PTROBJ | |
14 | DBZ_File T_PTROBJ | |
8990e307 LW |
15 | |
16 | INPUT | |
9fe6733a | 17 | T_DATUM_K |
bfd025d9 NC |
18 | { |
19 | STRLEN len; | |
a4051d29 | 20 | DBM_ckFilter($arg, filter[store_key], \"filter_store_key\"); |
bfd025d9 NC |
21 | $var.dptr = SvPVbyte($arg, len); |
22 | $var.dsize = (int)len; | |
23 | } | |
0bf2e707 PM |
24 | T_DATUM_K_C |
25 | { | |
26 | SV * tmpSV ; | |
bfd025d9 | 27 | STRLEN len; |
a4051d29 | 28 | if (db->filter[store_key]){ |
0bf2e707 | 29 | tmpSV = sv_2mortal(newSVsv($arg)); |
a4051d29 | 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 | 37 | T_DATUM_V |
a4051d29 | 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 { | |
989909f9 | 45 | $var.dptr = (char *)\"\"; |
cbc5248d PM |
46 | $var.dsize = 0; |
47 | } | |
8990e307 LW |
48 | T_GDATUM |
49 | UNIMPLEMENTED | |
50 | OUTPUT | |
9fe6733a PM |
51 | T_DATUM_K |
52 | sv_setpvn($arg, $var.dptr, $var.dsize); | |
a4051d29 | 53 | DBM_ckFilter($arg, filter[fetch_key],\"filter_fetch_key\"); |
9fe6733a | 54 | T_DATUM_V |
ef50df4b | 55 | sv_setpvn($arg, $var.dptr, $var.dsize); |
a4051d29 | 56 | DBM_ckFilter($arg, filter[fetch_value],\"filter_fetch_value\"); |
8990e307 | 57 | T_GDATUM |
ef50df4b | 58 | sv_usepvn($arg, $var.dptr, $var.dsize); |
666c7ca6 NC |
59 | T_PTROBJ |
60 | sv_setref_pv($arg, dbtype, (void*)$var); |