This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add UTF8 flag to keys returned by B::HV->ARRAY
[perl5.git] / ext / B / typemap
1 TYPEMAP
2
3 B::OP           T_OP_OBJ
4 B::UNOP         T_OP_OBJ
5 B::BINOP        T_OP_OBJ
6 B::LOGOP        T_OP_OBJ
7 B::LISTOP       T_OP_OBJ
8 B::PMOP         T_OP_OBJ
9 B::SVOP         T_OP_OBJ
10 B::PADOP        T_OP_OBJ
11 B::PVOP         T_OP_OBJ
12 B::LOOP         T_OP_OBJ
13 B::COP          T_OP_OBJ
14
15 B::SV           T_SV_OBJ
16 B::PV           T_SV_OBJ
17 B::IV           T_SV_OBJ
18 B::NV           T_SV_OBJ
19 B::PVMG         T_SV_OBJ
20 B::REGEXP       T_SV_OBJ
21 B::PVLV         T_SV_OBJ
22 B::BM           T_SV_OBJ
23 B::RV           T_SV_OBJ
24 B::GV           T_SV_OBJ
25 B::CV           T_SV_OBJ
26 B::HV           T_SV_OBJ
27 B::AV           T_SV_OBJ
28 B::IO           T_SV_OBJ
29 B::FM           T_SV_OBJ
30
31 B::MAGIC        T_MG_OBJ
32 SSize_t         T_IV
33 STRLEN          T_UV
34 PADOFFSET       T_UV
35
36 B::HE           T_HE_OBJ
37 B::RHE          T_RHE_OBJ
38
39 B::PADLIST      T_PL_OBJ
40
41 INPUT
42 T_OP_OBJ
43         if (SvROK($arg)) {
44             IV tmp = SvIV((SV*)SvRV($arg));
45             $var = INT2PTR($type,tmp);
46         }
47         else
48             croak(\"$var is not a reference\")
49
50 T_SV_OBJ
51         if (SvROK($arg)) {
52             IV tmp = SvIV((SV*)SvRV($arg));
53             $var = INT2PTR($type,tmp);
54         }
55         else
56             croak(\"$var is not a reference\")
57
58 T_MG_OBJ
59         if (SvROK($arg)) {
60             IV tmp = SvIV((SV*)SvRV($arg));
61             $var = INT2PTR($type,tmp);
62         }
63         else
64             croak(\"$var is not a reference\")
65
66 T_HE_OBJ
67         if (SvROK($arg)) {
68             IV tmp = SvIV((SV*)SvRV($arg));
69             $var = INT2PTR($type,tmp);
70         }
71         else
72             croak(\"$var is not a reference\")
73
74 T_RHE_OBJ
75         if (SvROK($arg)) {
76             IV tmp = SvIV((SV*)SvRV($arg));
77             $var = INT2PTR($type,tmp);
78         }
79         else
80             croak(\"$var is not a reference\")
81
82 T_PL_OBJ
83         if (SvROK($arg)) {
84             IV tmp = SvIV((SV*)SvRV($arg));
85             $var = INT2PTR($type,tmp);
86         }
87         else
88             croak(\"$var is not a reference\")
89
90 OUTPUT
91 T_MG_OBJ
92         sv_setiv(newSVrv($arg, "B::MAGIC"), PTR2IV($var));
93
94 T_HE_OBJ
95         sv_setiv(newSVrv($arg, "B::HE"), PTR2IV($var));
96
97 T_RHE_OBJ
98         sv_setiv(newSVrv($arg, "B::RHE"), PTR2IV($var));
99
100 T_PL_OBJ
101         sv_setiv(newSVrv($arg, $var ? "B::PADLIST" : "B::NULL"),
102                  PTR2IV($var));