ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/TDB_FileX/typemap
Revision: 1.1
Committed: Fri Apr 25 16:43:02 2025 UTC (17 months ago) by root
Branch: MAIN
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 TDB_CONTEXT * T_PTROBJ_CLASS
2     TDB_DATA T_TDB_DATA
3     mone_on_fail T_TDB_MONE_ON_FAIL
4     const char * T_PV
5     enum TDB_ERROR T_UV
6     tdb_traverse_func T_SV
7    
8     #############################################################################
9    
10     INPUT
11    
12     T_TDB_DATA
13     if (SvOK ($arg)) {
14     STRLEN len;
15     $var.dptr = SvPVbyte ($arg, len);
16     $var.dsize = len;
17     } else {
18     $var.dptr = NULL;
19     $var.dsize = 0;
20     }
21    
22     T_PTROBJ_CLASS
23     if (sv_derived_from($arg, \"$Package\")) {
24     IV tmp = SvIV ((SV*)SvRV ($arg));
25     $var = INT2PTR ($type,tmp);
26     }
27     else
28     croak(\"$var is not of type $Package\")
29    
30     #############################################################################
31    
32     OUTPUT
33    
34     T_TDB_DATA
35     if ($var.dptr) {
36     /* TODO: reuse data, if perl uses malloc */
37     sv_setpvn ((SV*)$arg, $var.dptr, $var.dsize);
38     free ($var.dptr);
39     } else
40     $arg = &PL_sv_undef;
41    
42     # note use of "class" string:
43     T_PTROBJ_CLASS
44     sv_setref_pv ($arg, class, (void*)$var);
45    
46     T_TDB_MONE_ON_FAIL
47     $arg = ($var == -1) ? &PL_sv_no : &PL_sv_yes;