| File: | obj/gnu/usr.bin/perl/ext/XS-Typemap/Typemap.c |
| Warning: | line 1662, column 3 Value stored to 'dummy' is never read |
Press '?' to see keyboard shortcuts
Keyboard shortcuts:
| 1 | /* |
| 2 | * This file was generated automatically by ExtUtils::ParseXS version 3.40 from the |
| 3 | * contents of Typemap.xs. Do not edit this file, edit Typemap.xs instead. |
| 4 | * |
| 5 | * ANY CHANGES MADE HERE WILL BE LOST! |
| 6 | * |
| 7 | */ |
| 8 | |
| 9 | #line 1 "Typemap.xs" |
| 10 | /* |
| 11 | XS code to test the typemap entries |
| 12 | |
| 13 | Copyright (C) 2001 Tim Jenness. |
| 14 | All Rights Reserved |
| 15 | |
| 16 | */ |
| 17 | |
| 18 | #define PERL_NO_GET_CONTEXT |
| 19 | |
| 20 | #include "EXTERN.h" /* std perl include */ |
| 21 | #include "perl.h" /* std perl include */ |
| 22 | #include "XSUB.h" /* XSUB include */ |
| 23 | |
| 24 | /* Prototypes for external functions */ |
| 25 | FILE * xsfopen( const char * ); |
| 26 | int xsfclose( FILE * ); |
| 27 | int xsfprintf( FILE *, const char *); |
| 28 | |
| 29 | /* Type definitions required for the XS typemaps */ |
| 30 | typedef SV * SVREF; /* T_SVREF */ |
| 31 | typedef int SysRet; /* T_SYSRET */ |
| 32 | typedef int Int; /* T_INT */ |
| 33 | typedef int intRef; /* T_PTRREF */ |
| 34 | typedef int intObj; /* T_PTROBJ */ |
| 35 | typedef int intRefIv; /* T_REF_IV_PTR */ |
| 36 | typedef int intArray; /* T_ARRAY */ |
| 37 | typedef int intTINT; /* T_INT */ |
| 38 | typedef int intTLONG; /* T_LONG */ |
| 39 | typedef short shortOPQ; /* T_OPAQUE */ |
| 40 | typedef int intOpq; /* T_OPAQUEPTR */ |
| 41 | typedef unsigned intUnsigned; /* T_U_INT */ |
| 42 | typedef PerlIOPerlIO * inputfh; /* T_IN */ |
| 43 | typedef PerlIOPerlIO * outputfh; /* T_OUT */ |
| 44 | |
| 45 | /* A structure to test T_OPAQUEPTR and T_PACKED */ |
| 46 | struct t_opaqueptr { |
| 47 | int a; |
| 48 | int b; |
| 49 | double c; |
| 50 | }; |
| 51 | |
| 52 | typedef struct t_opaqueptr astruct; |
| 53 | typedef struct t_opaqueptr anotherstruct; |
| 54 | |
| 55 | /* Some static memory for the tests */ |
| 56 | static I32 xst_anint; |
| 57 | static intRef xst_anintref; |
| 58 | static intObj xst_anintobj; |
| 59 | static intRefIv xst_anintrefiv; |
| 60 | static intOpq xst_anintopq; |
| 61 | |
| 62 | /* A different type to refer to for testing the different |
| 63 | * AV*, HV*, etc typemaps */ |
| 64 | typedef AV AV_FIXED; |
| 65 | typedef HV HV_FIXED; |
| 66 | typedef CV CV_FIXED; |
| 67 | typedef SVREF SVREF_FIXED; |
| 68 | |
| 69 | /* Helper functions */ |
| 70 | |
| 71 | /* T_ARRAY - allocate some memory */ |
| 72 | intArray * intArrayPtr( int nelem ) { |
| 73 | intArray * array; |
| 74 | Newx(array, nelem, intArray)(array = ((void)(__builtin_expect(((((( sizeof(size_t) < sizeof (nelem) || sizeof(intArray) > ((size_t)1 << 8*(sizeof (size_t) - sizeof(nelem)))) ? (size_t)(nelem) : ((size_t)-1)/ sizeof(intArray)) > ((size_t)-1)/sizeof(intArray))) ? (_Bool )1 : (_Bool)0),(0)) && (Perl_croak_memory_wrap(),0)), (intArray*)(Perl_safesysmalloc((size_t)((nelem)*sizeof(intArray )))))); |
| 75 | return array; |
| 76 | } |
| 77 | |
| 78 | /* test T_PACKED */ |
| 79 | STATICstatic void |
| 80 | XS_pack_anotherstructPtr(SV *out, anotherstruct *in) |
| 81 | { |
| 82 | dTHXstruct Perl___notused_struct; |
| 83 | HV *hash = newHV()((HV *)({ void *_p = (Perl_newSV_type( SVt_PVHV)); _p; })); |
| 84 | if (NULL((void*)0) == hv_stores(hash, "a", newSViv(in->a))((SV**) Perl_hv_common_key_len( ((hash)),(("" "a" "")),((sizeof ("a")-1)),(0x04|0x20),((Perl_newSViv( in->a))),(0)))) |
| 85 | croakPerl_croak("Failed to store data in hash"); |
| 86 | if (NULL((void*)0) == hv_stores(hash, "b", newSViv(in->b))((SV**) Perl_hv_common_key_len( ((hash)),(("" "b" "")),((sizeof ("b")-1)),(0x04|0x20),((Perl_newSViv( in->b))),(0)))) |
| 87 | croakPerl_croak("Failed to store data in hash"); |
| 88 | if (NULL((void*)0) == hv_stores(hash, "c", newSVnv(in->c))((SV**) Perl_hv_common_key_len( ((hash)),(("" "c" "")),((sizeof ("c")-1)),(0x04|0x20),((Perl_newSVnv( in->c))),(0)))) |
| 89 | croakPerl_croak("Failed to store data in hash"); |
| 90 | sv_setsv(out, sv_2mortal(newRV_noinc((SV*)hash)))Perl_sv_setsv_flags( out,Perl_sv_2mortal( Perl_newRV_noinc( ( SV*)hash)),2|0); |
| 91 | } |
| 92 | |
| 93 | STATICstatic anotherstruct * |
| 94 | XS_unpack_anotherstructPtr(SV *in) |
| 95 | { |
| 96 | dTHXstruct Perl___notused_struct; /* rats, this is expensive */ |
| 97 | /* this is similar to T_HVREF since we chose to use a hash */ |
| 98 | HV *inhash; |
| 99 | SV **elem; |
| 100 | anotherstruct *out; |
| 101 | SV *const tmp = in; |
| 102 | SvGETMAGIC(tmp)((void)(__builtin_expect(((((tmp)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( tmp))); |
| 103 | if (SvROK(tmp)((tmp)->sv_flags & 0x00000800) && SvTYPE(SvRV(tmp))((svtype)((((tmp)->sv_u.svu_rv))->sv_flags & 0xff)) == SVt_PVHV) |
| 104 | inhash = (HV*)SvRV(tmp)((tmp)->sv_u.svu_rv); |
| 105 | else |
| 106 | Perl_croak(aTHX_ "Argument is not a HASH reference"); |
| 107 | |
| 108 | /* FIXME dunno if supposed to use perl mallocs here */ |
| 109 | Newxz(out, 1, anotherstruct)(out = ((void)(__builtin_expect(((((( sizeof(size_t) < sizeof (1) || sizeof(anotherstruct) > ((size_t)1 << 8*(sizeof (size_t) - sizeof(1)))) ? (size_t)(1) : ((size_t)-1)/sizeof(anotherstruct )) > ((size_t)-1)/sizeof(anotherstruct))) ? (_Bool)1 : (_Bool )0),(0)) && (Perl_croak_memory_wrap(),0)), (anotherstruct *)(Perl_safesyscalloc((1),sizeof(anotherstruct))))); |
| 110 | |
| 111 | elem = hv_fetchs(inhash, "a", 0)((SV**) Perl_hv_common_key_len( ((inhash)),(("" "a" "")),((sizeof ("a")-1)),((0)) ? (0x20 | 0x10) : 0x20,((void*)0),0)); |
| 112 | if (elem == NULL((void*)0)) |
| 113 | Perl_croak(aTHX_ "Shouldn't happen: hv_fetchs returns NULL"); |
| 114 | out->a = SvIV(*elem)((((*elem)->sv_flags & (0x00000100|0x00200000)) == 0x00000100 ) ? ((XPVIV*) (*elem)->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags ( *elem,2)); |
| 115 | |
| 116 | elem = hv_fetchs(inhash, "b", 0)((SV**) Perl_hv_common_key_len( ((inhash)),(("" "b" "")),((sizeof ("b")-1)),((0)) ? (0x20 | 0x10) : 0x20,((void*)0),0)); |
| 117 | if (elem == NULL((void*)0)) |
| 118 | Perl_croak(aTHX_ "Shouldn't happen: hv_fetchs returns NULL"); |
| 119 | out->b = SvIV(*elem)((((*elem)->sv_flags & (0x00000100|0x00200000)) == 0x00000100 ) ? ((XPVIV*) (*elem)->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags ( *elem,2)); |
| 120 | |
| 121 | elem = hv_fetchs(inhash, "c", 0)((SV**) Perl_hv_common_key_len( ((inhash)),(("" "c" "")),((sizeof ("c")-1)),((0)) ? (0x20 | 0x10) : 0x20,((void*)0),0)); |
| 122 | if (elem == NULL((void*)0)) |
| 123 | Perl_croak(aTHX_ "Shouldn't happen: hv_fetchs returns NULL"); |
| 124 | out->c = SvNV(*elem)((((*elem)->sv_flags & (0x00000200|0x00200000)) == 0x00000200 ) ? ((XPVNV*) (*elem)->sv_any)->xnv_u.xnv_nv : Perl_sv_2nv_flags ( *elem,2)); |
| 125 | |
| 126 | return out; |
| 127 | } |
| 128 | |
| 129 | /* test T_PACKEDARRAY */ |
| 130 | STATICstatic void |
| 131 | XS_pack_anotherstructPtrPtr(SV *out, anotherstruct **in, UV cnt) |
| 132 | { |
| 133 | dTHXstruct Perl___notused_struct; |
| 134 | UV i; |
| 135 | AV *ary = newAV()((AV *)({ void *_p = (Perl_newSV_type( SVt_PVAV)); _p; })); |
| 136 | for (i = 0; i < cnt; ++i) { |
| 137 | HV *hash = newHV()((HV *)({ void *_p = (Perl_newSV_type( SVt_PVHV)); _p; })); |
| 138 | if (NULL((void*)0) == hv_stores(hash, "a", newSViv(in[i]->a))((SV**) Perl_hv_common_key_len( ((hash)),(("" "a" "")),((sizeof ("a")-1)),(0x04|0x20),((Perl_newSViv( in[i]->a))),(0)))) |
| 139 | croakPerl_croak("Failed to store data in hash"); |
| 140 | if (NULL((void*)0) == hv_stores(hash, "b", newSViv(in[i]->b))((SV**) Perl_hv_common_key_len( ((hash)),(("" "b" "")),((sizeof ("b")-1)),(0x04|0x20),((Perl_newSViv( in[i]->b))),(0)))) |
| 141 | croakPerl_croak("Failed to store data in hash"); |
| 142 | if (NULL((void*)0) == hv_stores(hash, "c", newSVnv(in[i]->c))((SV**) Perl_hv_common_key_len( ((hash)),(("" "c" "")),((sizeof ("c")-1)),(0x04|0x20),((Perl_newSVnv( in[i]->c))),(0)))) |
| 143 | croakPerl_croak("Failed to store data in hash"); |
| 144 | av_push(ary, newRV_noinc((SV*)hash))Perl_av_push( ary,Perl_newRV_noinc( (SV*)hash)); |
| 145 | } |
| 146 | sv_setsv(out, sv_2mortal(newRV_noinc((SV*)ary)))Perl_sv_setsv_flags( out,Perl_sv_2mortal( Perl_newRV_noinc( ( SV*)ary)),2|0); |
| 147 | } |
| 148 | |
| 149 | STATICstatic anotherstruct ** |
| 150 | XS_unpack_anotherstructPtrPtr(SV *in) |
| 151 | { |
| 152 | dTHXstruct Perl___notused_struct; /* rats, this is expensive */ |
| 153 | /* this is similar to T_HVREF since we chose to use a hash */ |
| 154 | HV *inhash; |
| 155 | AV *inary; |
| 156 | SV **elem; |
| 157 | anotherstruct **out; |
| 158 | UV nitems, i; |
| 159 | SV *tmp; |
| 160 | |
| 161 | /* safely deref the input array ref */ |
| 162 | tmp = in; |
| 163 | SvGETMAGIC(tmp)((void)(__builtin_expect(((((tmp)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( tmp))); |
| 164 | if (SvROK(tmp)((tmp)->sv_flags & 0x00000800) && SvTYPE(SvRV(tmp))((svtype)((((tmp)->sv_u.svu_rv))->sv_flags & 0xff)) == SVt_PVAV) |
| 165 | inary = (AV*)SvRV(tmp)((tmp)->sv_u.svu_rv); |
| 166 | else |
| 167 | Perl_croak(aTHX_ "Argument is not an ARRAY reference"); |
| 168 | |
| 169 | nitems = av_tindex(inary)Perl_av_top_index( inary) + 1; |
| 170 | |
| 171 | /* FIXME dunno if supposed to use perl mallocs here */ |
| 172 | /* N+1 elements so we know the last one is NULL */ |
| 173 | Newxz(out, nitems+1, anotherstruct*)(out = ((void)(__builtin_expect(((((( sizeof(size_t) < sizeof (nitems+1) || sizeof(anotherstruct*) > ((size_t)1 << 8*(sizeof(size_t) - sizeof(nitems+1)))) ? (size_t)(nitems+1) : ((size_t)-1)/sizeof(anotherstruct*)) > ((size_t)-1)/sizeof (anotherstruct*))) ? (_Bool)1 : (_Bool)0),(0)) && (Perl_croak_memory_wrap (),0)), (anotherstruct**)(Perl_safesyscalloc((nitems+1),sizeof (anotherstruct*))))); |
| 174 | |
| 175 | /* WARNING: in real code, we'd have to Safefree() on exception, but |
| 176 | * since we're testing perl, if we croak() here, stuff is |
| 177 | * rotten anyway! */ |
| 178 | for (i = 0; i < nitems; ++i) { |
| 179 | Newxz(out[i], 1, anotherstruct)(out[i] = ((void)(__builtin_expect(((((( sizeof(size_t) < sizeof (1) || sizeof(anotherstruct) > ((size_t)1 << 8*(sizeof (size_t) - sizeof(1)))) ? (size_t)(1) : ((size_t)-1)/sizeof(anotherstruct )) > ((size_t)-1)/sizeof(anotherstruct))) ? (_Bool)1 : (_Bool )0),(0)) && (Perl_croak_memory_wrap(),0)), (anotherstruct *)(Perl_safesyscalloc((1),sizeof(anotherstruct))))); |
| 180 | elem = av_fetch(inary, i, 0)Perl_av_fetch( inary,i,0); |
| 181 | if (elem == NULL((void*)0)) |
| 182 | Perl_croak(aTHX_ "Shouldn't happen: av_fetch returns NULL"); |
| 183 | tmp = *elem; |
| 184 | SvGETMAGIC(tmp)((void)(__builtin_expect(((((tmp)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( tmp))); |
| 185 | if (SvROK(tmp)((tmp)->sv_flags & 0x00000800) && SvTYPE(SvRV(tmp))((svtype)((((tmp)->sv_u.svu_rv))->sv_flags & 0xff)) == SVt_PVHV) |
| 186 | inhash = (HV*)SvRV(tmp)((tmp)->sv_u.svu_rv); |
| 187 | else |
| 188 | Perl_croak(aTHX_ "Array element %" UVuf"lu" |
| 189 | " is not a HASH reference", i); |
| 190 | |
| 191 | elem = hv_fetchs(inhash, "a", 0)((SV**) Perl_hv_common_key_len( ((inhash)),(("" "a" "")),((sizeof ("a")-1)),((0)) ? (0x20 | 0x10) : 0x20,((void*)0),0)); |
| 192 | if (elem == NULL((void*)0)) |
| 193 | Perl_croak(aTHX_ "Shouldn't happen: hv_fetchs returns NULL"); |
| 194 | out[i]->a = SvIV(*elem)((((*elem)->sv_flags & (0x00000100|0x00200000)) == 0x00000100 ) ? ((XPVIV*) (*elem)->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags ( *elem,2)); |
| 195 | |
| 196 | elem = hv_fetchs(inhash, "b", 0)((SV**) Perl_hv_common_key_len( ((inhash)),(("" "b" "")),((sizeof ("b")-1)),((0)) ? (0x20 | 0x10) : 0x20,((void*)0),0)); |
| 197 | if (elem == NULL((void*)0)) |
| 198 | Perl_croak(aTHX_ "Shouldn't happen: hv_fetchs returns NULL"); |
| 199 | out[i]->b = SvIV(*elem)((((*elem)->sv_flags & (0x00000100|0x00200000)) == 0x00000100 ) ? ((XPVIV*) (*elem)->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags ( *elem,2)); |
| 200 | |
| 201 | elem = hv_fetchs(inhash, "c", 0)((SV**) Perl_hv_common_key_len( ((inhash)),(("" "c" "")),((sizeof ("c")-1)),((0)) ? (0x20 | 0x10) : 0x20,((void*)0),0)); |
| 202 | if (elem == NULL((void*)0)) |
| 203 | Perl_croak(aTHX_ "Shouldn't happen: hv_fetchs returns NULL"); |
| 204 | out[i]->c = SvNV(*elem)((((*elem)->sv_flags & (0x00000200|0x00200000)) == 0x00000200 ) ? ((XPVNV*) (*elem)->sv_any)->xnv_u.xnv_nv : Perl_sv_2nv_flags ( *elem,2)); |
| 205 | } |
| 206 | |
| 207 | return out; |
| 208 | } |
| 209 | |
| 210 | /* no special meaning as far as typemaps are concerned, |
| 211 | * just for convenience */ |
| 212 | void |
| 213 | XS_release_anotherstructPtrPtr(anotherstruct **in) |
| 214 | { |
| 215 | unsigned int i; |
| 216 | for (i = 0; in[i] != NULL((void*)0); i++) |
| 217 | Safefree(in[i])Perl_safesysfree(((void *)(in[i]))); |
| 218 | Safefree(in)Perl_safesysfree(((void *)(in))); |
| 219 | } |
| 220 | |
| 221 | |
| 222 | #line 223 "Typemap.c" |
| 223 | #ifndef PERL_UNUSED_VAR |
| 224 | # define PERL_UNUSED_VAR(var)((void)sizeof(var)) if (0) var = var |
| 225 | #endif |
| 226 | |
| 227 | #ifndef dVARstruct Perl___notused_struct |
| 228 | # define dVARstruct Perl___notused_struct dNOOPstruct Perl___notused_struct |
| 229 | #endif |
| 230 | |
| 231 | |
| 232 | /* This stuff is not part of the API! You have been warned. */ |
| 233 | #ifndef PERL_VERSION_DECIMAL |
| 234 | # define PERL_VERSION_DECIMAL(r,v,s)(r*1000000 + v*1000 + s) (r*1000000 + v*1000 + s) |
| 235 | #endif |
| 236 | #ifndef PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1) |
| 237 | # define PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1) \ |
| 238 | PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)(5*1000000 + 32*1000 + 1) |
| 239 | #endif |
| 240 | #ifndef PERL_VERSION_GE |
| 241 | # define PERL_VERSION_GE(r,v,s)((5*1000000 + 32*1000 + 1) >= (r*1000000 + v*1000 + s)) \ |
| 242 | (PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1) >= PERL_VERSION_DECIMAL(r,v,s)(r*1000000 + v*1000 + s)) |
| 243 | #endif |
| 244 | #ifndef PERL_VERSION_LE |
| 245 | # define PERL_VERSION_LE(r,v,s)((5*1000000 + 32*1000 + 1) <= (r*1000000 + v*1000 + s)) \ |
| 246 | (PERL_DECIMAL_VERSION(5*1000000 + 32*1000 + 1) <= PERL_VERSION_DECIMAL(r,v,s)(r*1000000 + v*1000 + s)) |
| 247 | #endif |
| 248 | |
| 249 | /* XS_INTERNAL is the explicit static-linkage variant of the default |
| 250 | * XS macro. |
| 251 | * |
| 252 | * XS_EXTERNAL is the same as XS_INTERNAL except it does not include |
| 253 | * "STATIC", ie. it exports XSUB symbols. You probably don't want that |
| 254 | * for anything but the BOOT XSUB. |
| 255 | * |
| 256 | * See XSUB.h in core! |
| 257 | */ |
| 258 | |
| 259 | |
| 260 | /* TODO: This might be compatible further back than 5.10.0. */ |
| 261 | #if PERL_VERSION_GE(5, 10, 0)((5*1000000 + 32*1000 + 1) >= (5*1000000 + 10*1000 + 0)) && PERL_VERSION_LE(5, 15, 1)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 15*1000 + 1)) |
| 262 | # undef XS_EXTERNAL |
| 263 | # undef XS_INTERNAL |
| 264 | # if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING) |
| 265 | # define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) __declspec(dllexport) XSPROTO(name)void name( CV* cv __attribute__((unused))) |
| 266 | # define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) STATICstatic XSPROTO(name)void name( CV* cv __attribute__((unused))) |
| 267 | # endif |
| 268 | # if defined(__SYMBIAN32__) |
| 269 | # define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) EXPORT_C XSPROTO(name)void name( CV* cv __attribute__((unused))) |
| 270 | # define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) EXPORT_C STATICstatic XSPROTO(name)void name( CV* cv __attribute__((unused))) |
| 271 | # endif |
| 272 | # ifndef XS_EXTERNAL |
| 273 | # if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus) |
| 274 | # define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) void name(pTHX_ CV* cv __attribute__unused____attribute__((unused))) |
| 275 | # define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) STATICstatic void name(pTHX_ CV* cv __attribute__unused____attribute__((unused))) |
| 276 | # else |
| 277 | # ifdef __cplusplus |
| 278 | # define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) extern "C" XSPROTO(name)void name( CV* cv __attribute__((unused))) |
| 279 | # define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) static XSPROTO(name)void name( CV* cv __attribute__((unused))) |
| 280 | # else |
| 281 | # define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) XSPROTO(name)void name( CV* cv __attribute__((unused))) |
| 282 | # define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) STATICstatic XSPROTO(name)void name( CV* cv __attribute__((unused))) |
| 283 | # endif |
| 284 | # endif |
| 285 | # endif |
| 286 | #endif |
| 287 | |
| 288 | /* perl >= 5.10.0 && perl <= 5.15.1 */ |
| 289 | |
| 290 | |
| 291 | /* The XS_EXTERNAL macro is used for functions that must not be static |
| 292 | * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL |
| 293 | * macro defined, the best we can do is assume XS is the same. |
| 294 | * Dito for XS_INTERNAL. |
| 295 | */ |
| 296 | #ifndef XS_EXTERNAL |
| 297 | # define XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) XS(name)void name( CV* cv __attribute__((unused))) |
| 298 | #endif |
| 299 | #ifndef XS_INTERNAL |
| 300 | # define XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) XS(name)void name( CV* cv __attribute__((unused))) |
| 301 | #endif |
| 302 | |
| 303 | /* Now, finally, after all this mess, we want an ExtUtils::ParseXS |
| 304 | * internal macro that we're free to redefine for varying linkage due |
| 305 | * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use |
| 306 | * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to! |
| 307 | */ |
| 308 | |
| 309 | #undef XS_EUPXS |
| 310 | #if defined(PERL_EUPXS_ALWAYS_EXPORT) |
| 311 | # define XS_EUPXS(name)static void name( CV* cv __attribute__((unused))) XS_EXTERNAL(name)void name( CV* cv __attribute__((unused))) |
| 312 | #else |
| 313 | /* default to internal */ |
| 314 | # define XS_EUPXS(name)static void name( CV* cv __attribute__((unused))) XS_INTERNAL(name)static void name( CV* cv __attribute__((unused))) |
| 315 | #endif |
| 316 | |
| 317 | #ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0) |
| 318 | #define PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0) assert(cv)((void)0); assert(params)((void)0) |
| 319 | |
| 320 | /* prototype to pass -Wmissing-prototypes */ |
| 321 | STATICstatic void |
| 322 | S_croak_xs_usage(const CV *const cv, const char *const params); |
| 323 | |
| 324 | STATICstatic void |
| 325 | S_croak_xs_usage(const CV *const cv, const char *const params) |
| 326 | { |
| 327 | const GV *const gv = CvGV(cv)Perl_CvGV( (CV *)(cv)); |
| 328 | |
| 329 | PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0); |
| 330 | |
| 331 | if (gv) { |
| 332 | const char *const gvname = GvNAME(gv)((((XPVGV*)(gv)->sv_any)->xiv_u.xivu_namehek))->hek_key; |
| 333 | const HV *const stash = GvSTASH(gv)(((XPVGV*)(gv)->sv_any)->xnv_u.xgv_stash); |
| 334 | const char *const hvname = stash ? HvNAME(stash)((((stash)->sv_flags & 0x02000000) && ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV*) (stash )->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_name && ( ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV *) (stash)->sv_any)->xhv_max+1]))->xhv_name_count ? * ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV *) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_names : ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV *) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_name )) ? (( ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash )[((XPVHV*) (stash)->sv_any)->xhv_max+1]))->xhv_name_count ? *((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV *) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_names : ((struct xpvhv_aux*)&(((stash)->sv_u.svu_hash)[((XPVHV *) (stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_name ))->hek_key : ((void*)0)) : NULL((void*)0); |
| 335 | |
| 336 | if (hvname) |
| 337 | Perl_croak_nocontextPerl_croak("Usage: %s::%s(%s)", hvname, gvname, params); |
| 338 | else |
| 339 | Perl_croak_nocontextPerl_croak("Usage: %s(%s)", gvname, params); |
| 340 | } else { |
| 341 | /* Pants. I don't think that it should be possible to get here. */ |
| 342 | Perl_croak_nocontextPerl_croak("Usage: CODE(0x%" UVxf"lx" ")(%s)", PTR2UV(cv)(UV)(cv), params); |
| 343 | } |
| 344 | } |
| 345 | #undef PERL_ARGS_ASSERT_CROAK_XS_USAGE((void)0); ((void)0) |
| 346 | |
| 347 | #define croak_xs_usagePerl_croak_xs_usage S_croak_xs_usage |
| 348 | |
| 349 | #endif |
| 350 | |
| 351 | /* NOTE: the prototype of newXSproto() is different in versions of perls, |
| 352 | * so we define a portable version of newXSproto() |
| 353 | */ |
| 354 | #ifdef newXS_flags |
| 355 | #define newXSproto_portable(name, c_impl, file, proto)Perl_newXS_flags( name,c_impl,file,proto,0) newXS_flags(name, c_impl, file, proto, 0)Perl_newXS_flags( name,c_impl,file,proto,0) |
| 356 | #else |
| 357 | #define newXSproto_portable(name, c_impl, file, proto)Perl_newXS_flags( name,c_impl,file,proto,0) (PL_Sv=(SV*)newXS(name, c_impl, file)Perl_newXS( name,c_impl,file), sv_setpv(PL_Sv, proto)Perl_sv_setpv( PL_Sv,proto), (CV*)PL_Sv) |
| 358 | #endif /* !defined(newXS_flags) */ |
| 359 | |
| 360 | #if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5)) |
| 361 | # define newXS_deffile(a,b)Perl_newXS_deffile( a,b) Perl_newXS(aTHX_ a,b,file) |
| 362 | #else |
| 363 | # define newXS_deffile(a,b)Perl_newXS_deffile( a,b) Perl_newXS_deffile(aTHX_ a,b) |
| 364 | #endif |
| 365 | |
| 366 | #line 367 "Typemap.c" |
| 367 | |
| 368 | XS_EUPXS(XS_XS__Typemap_T_SV)static void XS_XS__Typemap_T_SV( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 369 | XS_EUPXS(XS_XS__Typemap_T_SV)static void XS_XS__Typemap_T_SV( CV* cv __attribute__((unused ))) |
| 370 | { |
| 371 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 372 | if (items != 1) |
| 373 | croak_xs_usagePerl_croak_xs_usage(cv, "sv"); |
| 374 | { |
| 375 | SV * sv = ST(0)PL_stack_base[ax + (0)] |
| 376 | ; |
| 377 | SV * RETVAL; |
| 378 | #line 259 "Typemap.xs" |
| 379 | /* create a new sv for return that is a copy of the input |
| 380 | do not simply copy the pointer since the SV will be marked |
| 381 | mortal by the INPUT typemap when it is pushed back onto the stack */ |
| 382 | RETVAL = sv_mortalcopy( sv )Perl_sv_mortalcopy_flags( sv, 2|0); |
| 383 | /* increment the refcount since the default INPUT typemap mortalizes |
| 384 | by default and we don't want to decrement the ref count twice |
| 385 | by mistake */ |
| 386 | SvREFCNT_inc(RETVAL)Perl_SvREFCNT_inc(((SV *)({ void *_p = (RETVAL); _p; }))); |
| 387 | #line 388 "Typemap.c" |
| 388 | RETVAL = sv_2mortal(RETVAL)Perl_sv_2mortal( RETVAL); |
| 389 | ST(0)PL_stack_base[ax + (0)] = RETVAL; |
| 390 | } |
| 391 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 392 | } |
| 393 | |
| 394 | |
| 395 | XS_EUPXS(XS_XS__Typemap_T_SVREF)static void XS_XS__Typemap_T_SVREF( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 396 | XS_EUPXS(XS_XS__Typemap_T_SVREF)static void XS_XS__Typemap_T_SVREF( CV* cv __attribute__((unused ))) |
| 397 | { |
| 398 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 399 | if (items != 1) |
| 400 | croak_xs_usagePerl_croak_xs_usage(cv, "svref"); |
| 401 | { |
| 402 | SVREF svref; |
| 403 | SVREF RETVAL; |
| 404 | |
| 405 | STMT_STARTdo { |
| 406 | SV* const xsub_tmp_sv = ST(0)PL_stack_base[ax + (0)]; |
| 407 | SvGETMAGIC(xsub_tmp_sv)((void)(__builtin_expect(((((xsub_tmp_sv)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( xsub_tmp_sv ))); |
| 408 | if (SvROK(xsub_tmp_sv)((xsub_tmp_sv)->sv_flags & 0x00000800)){ |
| 409 | svref = SvRV(xsub_tmp_sv)((xsub_tmp_sv)->sv_u.svu_rv); |
| 410 | } |
| 411 | else{ |
| 412 | Perl_croak_nocontextPerl_croak("%s: %s is not a reference", |
| 413 | "XS::Typemap::T_SVREF", |
| 414 | "svref"); |
| 415 | } |
| 416 | } STMT_ENDwhile (0) |
| 417 | ; |
| 418 | #line 277 "Typemap.xs" |
| 419 | RETVAL = svref; |
| 420 | #line 421 "Typemap.c" |
| 421 | { |
| 422 | SV * RETVALSV; |
| 423 | RETVALSV = newRV((SV*)RETVAL)Perl_newRV( (SV*)RETVAL); |
| 424 | RETVALSV = sv_2mortal(RETVALSV)Perl_sv_2mortal( RETVALSV); |
| 425 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 426 | } |
| 427 | } |
| 428 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 429 | } |
| 430 | |
| 431 | |
| 432 | XS_EUPXS(XS_XS__Typemap_T_SVREF_REFCOUNT_FIXED)static void XS_XS__Typemap_T_SVREF_REFCOUNT_FIXED( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 433 | XS_EUPXS(XS_XS__Typemap_T_SVREF_REFCOUNT_FIXED)static void XS_XS__Typemap_T_SVREF_REFCOUNT_FIXED( CV* cv __attribute__ ((unused))) |
| 434 | { |
| 435 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 436 | if (items != 1) |
| 437 | croak_xs_usagePerl_croak_xs_usage(cv, "svref"); |
| 438 | { |
| 439 | SVREF_FIXED svref; |
| 440 | SVREF_FIXED RETVAL; |
| 441 | |
| 442 | STMT_STARTdo { |
| 443 | SV* const xsub_tmp_sv = ST(0)PL_stack_base[ax + (0)]; |
| 444 | SvGETMAGIC(xsub_tmp_sv)((void)(__builtin_expect(((((xsub_tmp_sv)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( xsub_tmp_sv ))); |
| 445 | if (SvROK(xsub_tmp_sv)((xsub_tmp_sv)->sv_flags & 0x00000800)){ |
| 446 | svref = SvRV(xsub_tmp_sv)((xsub_tmp_sv)->sv_u.svu_rv); |
| 447 | } |
| 448 | else{ |
| 449 | Perl_croak_nocontextPerl_croak("%s: %s is not a reference", |
| 450 | "XS::Typemap::T_SVREF_REFCOUNT_FIXED", |
| 451 | "svref"); |
| 452 | } |
| 453 | } STMT_ENDwhile (0) |
| 454 | ; |
| 455 | #line 288 "Typemap.xs" |
| 456 | SvREFCNT_inc(svref)Perl_SvREFCNT_inc(((SV *)({ void *_p = (svref); _p; }))); |
| 457 | RETVAL = svref; |
| 458 | #line 459 "Typemap.c" |
| 459 | { |
| 460 | SV * RETVALSV; |
| 461 | RETVALSV = newRV_noinc((SV*)RETVAL)Perl_newRV_noinc( (SV*)RETVAL); |
| 462 | RETVALSV = sv_2mortal(RETVALSV)Perl_sv_2mortal( RETVALSV); |
| 463 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 464 | } |
| 465 | } |
| 466 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 467 | } |
| 468 | |
| 469 | |
| 470 | XS_EUPXS(XS_XS__Typemap_T_AVREF)static void XS_XS__Typemap_T_AVREF( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 471 | XS_EUPXS(XS_XS__Typemap_T_AVREF)static void XS_XS__Typemap_T_AVREF( CV* cv __attribute__((unused ))) |
| 472 | { |
| 473 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 474 | if (items != 1) |
| 475 | croak_xs_usagePerl_croak_xs_usage(cv, "av"); |
| 476 | { |
| 477 | AV * av; |
| 478 | AV * RETVAL; |
| 479 | |
| 480 | STMT_STARTdo { |
| 481 | SV* const xsub_tmp_sv = ST(0)PL_stack_base[ax + (0)]; |
| 482 | SvGETMAGIC(xsub_tmp_sv)((void)(__builtin_expect(((((xsub_tmp_sv)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( xsub_tmp_sv ))); |
| 483 | if (SvROK(xsub_tmp_sv)((xsub_tmp_sv)->sv_flags & 0x00000800) && SvTYPE(SvRV(xsub_tmp_sv))((svtype)((((xsub_tmp_sv)->sv_u.svu_rv))->sv_flags & 0xff)) == SVt_PVAV){ |
| 484 | av = (AV*)SvRV(xsub_tmp_sv)((xsub_tmp_sv)->sv_u.svu_rv); |
| 485 | } |
| 486 | else{ |
| 487 | Perl_croak_nocontextPerl_croak("%s: %s is not an ARRAY reference", |
| 488 | "XS::Typemap::T_AVREF", |
| 489 | "av"); |
| 490 | } |
| 491 | } STMT_ENDwhile (0) |
| 492 | ; |
| 493 | #line 300 "Typemap.xs" |
| 494 | RETVAL = av; |
| 495 | #line 496 "Typemap.c" |
| 496 | { |
| 497 | SV * RETVALSV; |
| 498 | RETVALSV = newRV((SV*)RETVAL)Perl_newRV( (SV*)RETVAL); |
| 499 | RETVALSV = sv_2mortal(RETVALSV)Perl_sv_2mortal( RETVALSV); |
| 500 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 501 | } |
| 502 | } |
| 503 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 504 | } |
| 505 | |
| 506 | |
| 507 | XS_EUPXS(XS_XS__Typemap_T_AVREF_REFCOUNT_FIXED)static void XS_XS__Typemap_T_AVREF_REFCOUNT_FIXED( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 508 | XS_EUPXS(XS_XS__Typemap_T_AVREF_REFCOUNT_FIXED)static void XS_XS__Typemap_T_AVREF_REFCOUNT_FIXED( CV* cv __attribute__ ((unused))) |
| 509 | { |
| 510 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 511 | if (items != 1) |
| 512 | croak_xs_usagePerl_croak_xs_usage(cv, "av"); |
| 513 | { |
| 514 | AV_FIXED * av; |
| 515 | AV_FIXED * RETVAL; |
| 516 | |
| 517 | STMT_STARTdo { |
| 518 | SV* const xsub_tmp_sv = ST(0)PL_stack_base[ax + (0)]; |
| 519 | SvGETMAGIC(xsub_tmp_sv)((void)(__builtin_expect(((((xsub_tmp_sv)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( xsub_tmp_sv ))); |
| 520 | if (SvROK(xsub_tmp_sv)((xsub_tmp_sv)->sv_flags & 0x00000800) && SvTYPE(SvRV(xsub_tmp_sv))((svtype)((((xsub_tmp_sv)->sv_u.svu_rv))->sv_flags & 0xff)) == SVt_PVAV){ |
| 521 | av = (AV*)SvRV(xsub_tmp_sv)((xsub_tmp_sv)->sv_u.svu_rv); |
| 522 | } |
| 523 | else{ |
| 524 | Perl_croak_nocontextPerl_croak("%s: %s is not an ARRAY reference", |
| 525 | "XS::Typemap::T_AVREF_REFCOUNT_FIXED", |
| 526 | "av"); |
| 527 | } |
| 528 | } STMT_ENDwhile (0) |
| 529 | ; |
| 530 | #line 311 "Typemap.xs" |
| 531 | SvREFCNT_inc(av)Perl_SvREFCNT_inc(((SV *)({ void *_p = (av); _p; }))); |
| 532 | RETVAL = av; |
| 533 | #line 534 "Typemap.c" |
| 534 | { |
| 535 | SV * RETVALSV; |
| 536 | RETVALSV = newRV_noinc((SV*)RETVAL)Perl_newRV_noinc( (SV*)RETVAL); |
| 537 | RETVALSV = sv_2mortal(RETVALSV)Perl_sv_2mortal( RETVALSV); |
| 538 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 539 | } |
| 540 | } |
| 541 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 542 | } |
| 543 | |
| 544 | |
| 545 | XS_EUPXS(XS_XS__Typemap_T_HVREF)static void XS_XS__Typemap_T_HVREF( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 546 | XS_EUPXS(XS_XS__Typemap_T_HVREF)static void XS_XS__Typemap_T_HVREF( CV* cv __attribute__((unused ))) |
| 547 | { |
| 548 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 549 | if (items != 1) |
| 550 | croak_xs_usagePerl_croak_xs_usage(cv, "hv"); |
| 551 | { |
| 552 | HV * hv; |
| 553 | HV * RETVAL; |
| 554 | |
| 555 | STMT_STARTdo { |
| 556 | SV* const xsub_tmp_sv = ST(0)PL_stack_base[ax + (0)]; |
| 557 | SvGETMAGIC(xsub_tmp_sv)((void)(__builtin_expect(((((xsub_tmp_sv)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( xsub_tmp_sv ))); |
| 558 | if (SvROK(xsub_tmp_sv)((xsub_tmp_sv)->sv_flags & 0x00000800) && SvTYPE(SvRV(xsub_tmp_sv))((svtype)((((xsub_tmp_sv)->sv_u.svu_rv))->sv_flags & 0xff)) == SVt_PVHV){ |
| 559 | hv = (HV*)SvRV(xsub_tmp_sv)((xsub_tmp_sv)->sv_u.svu_rv); |
| 560 | } |
| 561 | else{ |
| 562 | Perl_croak_nocontextPerl_croak("%s: %s is not a HASH reference", |
| 563 | "XS::Typemap::T_HVREF", |
| 564 | "hv"); |
| 565 | } |
| 566 | } STMT_ENDwhile (0) |
| 567 | ; |
| 568 | #line 323 "Typemap.xs" |
| 569 | RETVAL = hv; |
| 570 | #line 571 "Typemap.c" |
| 571 | { |
| 572 | SV * RETVALSV; |
| 573 | RETVALSV = newRV((SV*)RETVAL)Perl_newRV( (SV*)RETVAL); |
| 574 | RETVALSV = sv_2mortal(RETVALSV)Perl_sv_2mortal( RETVALSV); |
| 575 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 576 | } |
| 577 | } |
| 578 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 579 | } |
| 580 | |
| 581 | |
| 582 | XS_EUPXS(XS_XS__Typemap_T_HVREF_REFCOUNT_FIXED)static void XS_XS__Typemap_T_HVREF_REFCOUNT_FIXED( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 583 | XS_EUPXS(XS_XS__Typemap_T_HVREF_REFCOUNT_FIXED)static void XS_XS__Typemap_T_HVREF_REFCOUNT_FIXED( CV* cv __attribute__ ((unused))) |
| 584 | { |
| 585 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 586 | if (items != 1) |
| 587 | croak_xs_usagePerl_croak_xs_usage(cv, "hv"); |
| 588 | { |
| 589 | HV_FIXED * hv; |
| 590 | HV_FIXED * RETVAL; |
| 591 | |
| 592 | STMT_STARTdo { |
| 593 | SV* const xsub_tmp_sv = ST(0)PL_stack_base[ax + (0)]; |
| 594 | SvGETMAGIC(xsub_tmp_sv)((void)(__builtin_expect(((((xsub_tmp_sv)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( xsub_tmp_sv ))); |
| 595 | if (SvROK(xsub_tmp_sv)((xsub_tmp_sv)->sv_flags & 0x00000800) && SvTYPE(SvRV(xsub_tmp_sv))((svtype)((((xsub_tmp_sv)->sv_u.svu_rv))->sv_flags & 0xff)) == SVt_PVHV){ |
| 596 | hv = (HV*)SvRV(xsub_tmp_sv)((xsub_tmp_sv)->sv_u.svu_rv); |
| 597 | } |
| 598 | else{ |
| 599 | Perl_croak_nocontextPerl_croak("%s: %s is not a HASH reference", |
| 600 | "XS::Typemap::T_HVREF_REFCOUNT_FIXED", |
| 601 | "hv"); |
| 602 | } |
| 603 | } STMT_ENDwhile (0) |
| 604 | ; |
| 605 | #line 334 "Typemap.xs" |
| 606 | SvREFCNT_inc(hv)Perl_SvREFCNT_inc(((SV *)({ void *_p = (hv); _p; }))); |
| 607 | RETVAL = hv; |
| 608 | #line 609 "Typemap.c" |
| 609 | { |
| 610 | SV * RETVALSV; |
| 611 | RETVALSV = newRV_noinc((SV*)RETVAL)Perl_newRV_noinc( (SV*)RETVAL); |
| 612 | RETVALSV = sv_2mortal(RETVALSV)Perl_sv_2mortal( RETVALSV); |
| 613 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 614 | } |
| 615 | } |
| 616 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 617 | } |
| 618 | |
| 619 | |
| 620 | XS_EUPXS(XS_XS__Typemap_T_CVREF)static void XS_XS__Typemap_T_CVREF( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 621 | XS_EUPXS(XS_XS__Typemap_T_CVREF)static void XS_XS__Typemap_T_CVREF( CV* cv __attribute__((unused ))) |
| 622 | { |
| 623 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 624 | if (items != 1) |
| 625 | croak_xs_usagePerl_croak_xs_usage(cv, "cv"); |
| 626 | { |
| 627 | CV * cv; |
| 628 | CV * RETVAL; |
| 629 | |
| 630 | STMT_STARTdo { |
| 631 | HV *st; |
| 632 | GV *gvp; |
| 633 | SV * const xsub_tmp_sv = ST(0)PL_stack_base[ax + (0)]; |
| 634 | SvGETMAGIC(xsub_tmp_sv)((void)(__builtin_expect(((((xsub_tmp_sv)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( xsub_tmp_sv ))); |
| 635 | cv = sv_2cv(xsub_tmp_sv, &st, &gvp, 0)Perl_sv_2cv( xsub_tmp_sv,&st,&gvp,0); |
| 636 | if (!cv) { |
| 637 | Perl_croak_nocontextPerl_croak("%s: %s is not a CODE reference", |
| 638 | "XS::Typemap::T_CVREF", |
| 639 | "cv"); |
| 640 | } |
| 641 | } STMT_ENDwhile (0) |
| 642 | ; |
| 643 | #line 346 "Typemap.xs" |
| 644 | RETVAL = cv; |
| 645 | #line 646 "Typemap.c" |
| 646 | { |
| 647 | SV * RETVALSV; |
| 648 | RETVALSV = newRV((SV*)RETVAL)Perl_newRV( (SV*)RETVAL); |
| 649 | RETVALSV = sv_2mortal(RETVALSV)Perl_sv_2mortal( RETVALSV); |
| 650 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 651 | } |
| 652 | } |
| 653 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 654 | } |
| 655 | |
| 656 | |
| 657 | XS_EUPXS(XS_XS__Typemap_T_CVREF_REFCOUNT_FIXED)static void XS_XS__Typemap_T_CVREF_REFCOUNT_FIXED( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 658 | XS_EUPXS(XS_XS__Typemap_T_CVREF_REFCOUNT_FIXED)static void XS_XS__Typemap_T_CVREF_REFCOUNT_FIXED( CV* cv __attribute__ ((unused))) |
| 659 | { |
| 660 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 661 | if (items != 1) |
| 662 | croak_xs_usagePerl_croak_xs_usage(cv, "cv"); |
| 663 | { |
| 664 | CV_FIXED * cv; |
| 665 | CV_FIXED * RETVAL; |
| 666 | |
| 667 | STMT_STARTdo { |
| 668 | HV *st; |
| 669 | GV *gvp; |
| 670 | SV * const xsub_tmp_sv = ST(0)PL_stack_base[ax + (0)]; |
| 671 | SvGETMAGIC(xsub_tmp_sv)((void)(__builtin_expect(((((xsub_tmp_sv)->sv_flags & 0x00200000 )) ? (_Bool)1 : (_Bool)0),(0)) && Perl_mg_get( xsub_tmp_sv ))); |
| 672 | cv = sv_2cv(xsub_tmp_sv, &st, &gvp, 0)Perl_sv_2cv( xsub_tmp_sv,&st,&gvp,0); |
| 673 | if (!cv) { |
| 674 | Perl_croak_nocontextPerl_croak("%s: %s is not a CODE reference", |
| 675 | "XS::Typemap::T_CVREF_REFCOUNT_FIXED", |
| 676 | "cv"); |
| 677 | } |
| 678 | } STMT_ENDwhile (0) |
| 679 | ; |
| 680 | #line 357 "Typemap.xs" |
| 681 | SvREFCNT_inc(cv)Perl_SvREFCNT_inc(((SV *)({ void *_p = (cv); _p; }))); |
| 682 | RETVAL = cv; |
| 683 | #line 684 "Typemap.c" |
| 684 | { |
| 685 | SV * RETVALSV; |
| 686 | RETVALSV = newRV_noinc((SV*)RETVAL)Perl_newRV_noinc( (SV*)RETVAL); |
| 687 | RETVALSV = sv_2mortal(RETVALSV)Perl_sv_2mortal( RETVALSV); |
| 688 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 689 | } |
| 690 | } |
| 691 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 692 | } |
| 693 | |
| 694 | |
| 695 | XS_EUPXS(XS_XS__Typemap_T_SYSRET_pass)static void XS_XS__Typemap_T_SYSRET_pass( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 696 | XS_EUPXS(XS_XS__Typemap_T_SYSRET_pass)static void XS_XS__Typemap_T_SYSRET_pass( CV* cv __attribute__ ((unused))) |
| 697 | { |
| 698 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 699 | if (items != 0) |
| 700 | croak_xs_usagePerl_croak_xs_usage(cv, ""); |
| 701 | { |
| 702 | SysRet RETVAL; |
| 703 | #line 370 "Typemap.xs" |
| 704 | RETVAL = 0; |
| 705 | #line 706 "Typemap.c" |
| 706 | { |
| 707 | SV * RETVALSV; |
| 708 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 709 | if (RETVAL != -1) { |
| 710 | if (RETVAL == 0) |
| 711 | sv_setpvn(RETVALSV, "0 but true", 10)Perl_sv_setpvn( RETVALSV,"0 but true",10); |
| 712 | else |
| 713 | sv_setiv(RETVALSV, (IV)RETVAL)Perl_sv_setiv( RETVALSV,(IV)RETVAL); |
| 714 | } |
| 715 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 716 | } |
| 717 | } |
| 718 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 719 | } |
| 720 | |
| 721 | |
| 722 | XS_EUPXS(XS_XS__Typemap_T_SYSRET_fail)static void XS_XS__Typemap_T_SYSRET_fail( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 723 | XS_EUPXS(XS_XS__Typemap_T_SYSRET_fail)static void XS_XS__Typemap_T_SYSRET_fail( CV* cv __attribute__ ((unused))) |
| 724 | { |
| 725 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 726 | if (items != 0) |
| 727 | croak_xs_usagePerl_croak_xs_usage(cv, ""); |
| 728 | { |
| 729 | SysRet RETVAL; |
| 730 | #line 379 "Typemap.xs" |
| 731 | RETVAL = -1; |
| 732 | #line 733 "Typemap.c" |
| 733 | { |
| 734 | SV * RETVALSV; |
| 735 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 736 | if (RETVAL != -1) { |
| 737 | if (RETVAL == 0) |
| 738 | sv_setpvn(RETVALSV, "0 but true", 10)Perl_sv_setpvn( RETVALSV,"0 but true",10); |
| 739 | else |
| 740 | sv_setiv(RETVALSV, (IV)RETVAL)Perl_sv_setiv( RETVALSV,(IV)RETVAL); |
| 741 | } |
| 742 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 743 | } |
| 744 | } |
| 745 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 746 | } |
| 747 | |
| 748 | |
| 749 | XS_EUPXS(XS_XS__Typemap_T_UV)static void XS_XS__Typemap_T_UV( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 750 | XS_EUPXS(XS_XS__Typemap_T_UV)static void XS_XS__Typemap_T_UV( CV* cv __attribute__((unused ))) |
| 751 | { |
| 752 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 753 | if (items != 1) |
| 754 | croak_xs_usagePerl_croak_xs_usage(cv, "uv"); |
| 755 | { |
| 756 | unsigned int uv = (unsigned int)SvUV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x80000000 |0x00200000)) == (0x00000100|0x80000000)) ? ((XPVUV*) (PL_stack_base [ax + (0)])->sv_any)->xuv_u.xivu_uv : Perl_sv_2uv_flags ( PL_stack_base[ax + (0)],2)) |
| 757 | ; |
| 758 | unsigned int RETVAL; |
| 759 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 760 | #line 389 "Typemap.xs" |
| 761 | RETVAL = uv; |
| 762 | #line 763 "Typemap.c" |
| 763 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((UV)RETVAL)do { do { UV TARGu_uv = (UV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= ( UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1)) ) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000) ; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ ,TARGu_uv); } while (0); (*++sp = (targ)); } while (0); |
| 764 | } |
| 765 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 766 | } |
| 767 | |
| 768 | |
| 769 | XS_EUPXS(XS_XS__Typemap_T_IV)static void XS_XS__Typemap_T_IV( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 770 | XS_EUPXS(XS_XS__Typemap_T_IV)static void XS_XS__Typemap_T_IV( CV* cv __attribute__((unused ))) |
| 771 | { |
| 772 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 773 | if (items != 1) |
| 774 | croak_xs_usagePerl_croak_xs_usage(cv, "iv"); |
| 775 | { |
| 776 | long iv = (long)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 777 | ; |
| 778 | long RETVAL; |
| 779 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 780 | #line 400 "Typemap.xs" |
| 781 | RETVAL = iv; |
| 782 | #line 783 "Typemap.c" |
| 783 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 784 | } |
| 785 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 786 | } |
| 787 | |
| 788 | |
| 789 | XS_EUPXS(XS_XS__Typemap_T_INT)static void XS_XS__Typemap_T_INT( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 790 | XS_EUPXS(XS_XS__Typemap_T_INT)static void XS_XS__Typemap_T_INT( CV* cv __attribute__((unused ))) |
| 791 | { |
| 792 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 793 | if (items != 1) |
| 794 | croak_xs_usagePerl_croak_xs_usage(cv, "i"); |
| 795 | { |
| 796 | intTINT i = (int)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 797 | ; |
| 798 | intTINT RETVAL; |
| 799 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 800 | #line 411 "Typemap.xs" |
| 801 | RETVAL = i; |
| 802 | #line 803 "Typemap.c" |
| 803 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 804 | } |
| 805 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 806 | } |
| 807 | |
| 808 | |
| 809 | XS_EUPXS(XS_XS__Typemap_T_ENUM)static void XS_XS__Typemap_T_ENUM( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 810 | XS_EUPXS(XS_XS__Typemap_T_ENUM)static void XS_XS__Typemap_T_ENUM( CV* cv __attribute__((unused ))) |
| 811 | { |
| 812 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 813 | if (items != 0) |
| 814 | croak_xs_usagePerl_croak_xs_usage(cv, ""); |
| 815 | { |
| 816 | svtype RETVAL; |
| 817 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 818 | #line 425 "Typemap.xs" |
| 819 | RETVAL = SVt_PVHV; |
| 820 | #line 821 "Typemap.c" |
| 821 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 822 | } |
| 823 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 824 | } |
| 825 | |
| 826 | |
| 827 | XS_EUPXS(XS_XS__Typemap_T_BOOL)static void XS_XS__Typemap_T_BOOL( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 828 | XS_EUPXS(XS_XS__Typemap_T_BOOL)static void XS_XS__Typemap_T_BOOL( CV* cv __attribute__((unused ))) |
| 829 | { |
| 830 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 831 | if (items != 1) |
| 832 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 833 | { |
| 834 | bool_Bool in = (bool_Bool)SvTRUE(ST(0))Perl_SvTRUE( PL_stack_base[ax + (0)]) |
| 835 | ; |
| 836 | bool_Bool RETVAL; |
| 837 | #line 436 "Typemap.xs" |
| 838 | RETVAL = in; |
| 839 | #line 840 "Typemap.c" |
| 840 | ST(0)PL_stack_base[ax + (0)] = boolSV(RETVAL)((RETVAL) ? &(PL_sv_immortals[0]) : &(PL_sv_immortals [2])); |
| 841 | } |
| 842 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 843 | } |
| 844 | |
| 845 | |
| 846 | XS_EUPXS(XS_XS__Typemap_T_BOOL_2)static void XS_XS__Typemap_T_BOOL_2( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 847 | XS_EUPXS(XS_XS__Typemap_T_BOOL_2)static void XS_XS__Typemap_T_BOOL_2( CV* cv __attribute__((unused ))) |
| 848 | { |
| 849 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 850 | if (items != 1) |
| 851 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 852 | { |
| 853 | bool_Bool in = (bool_Bool)SvTRUE(ST(0))Perl_SvTRUE( PL_stack_base[ax + (0)]) |
| 854 | ; |
| 855 | bool_Bool RETVAL; |
| 856 | #line 444 "Typemap.xs" |
| 857 | PERL_UNUSED_VAR(RETVAL)((void)sizeof(RETVAL)); |
| 858 | #line 859 "Typemap.c" |
| 859 | sv_setsv(ST(0), boolSV(in))Perl_sv_setsv_flags( PL_stack_base[ax + (0)],((in) ? &(PL_sv_immortals [0]) : &(PL_sv_immortals[2])),2|0); |
| 860 | SvSETMAGIC(ST(0))do { if (__builtin_expect(((((PL_stack_base[ax + (0)])->sv_flags & 0x00400000)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( PL_stack_base[ax + (0)]); } while (0); |
| 861 | } |
| 862 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 863 | } |
| 864 | |
| 865 | |
| 866 | XS_EUPXS(XS_XS__Typemap_T_BOOL_OUT)static void XS_XS__Typemap_T_BOOL_OUT( CV* cv __attribute__(( unused))); /* prototype to pass -Wmissing-prototypes */ |
| 867 | XS_EUPXS(XS_XS__Typemap_T_BOOL_OUT)static void XS_XS__Typemap_T_BOOL_OUT( CV* cv __attribute__(( unused))) |
| 868 | { |
| 869 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 870 | if (items != 2) |
| 871 | croak_xs_usagePerl_croak_xs_usage(cv, "out, in"); |
| 872 | { |
| 873 | bool_Bool out = (bool_Bool)SvTRUE(ST(0))Perl_SvTRUE( PL_stack_base[ax + (0)]) |
| 874 | ; |
| 875 | bool_Bool in = (bool_Bool)SvTRUE(ST(1))Perl_SvTRUE( PL_stack_base[ax + (1)]) |
| 876 | ; |
| 877 | #line 453 "Typemap.xs" |
| 878 | out = in; |
| 879 | #line 880 "Typemap.c" |
| 880 | sv_setsv(ST(0), boolSV(out))Perl_sv_setsv_flags( PL_stack_base[ax + (0)],((out) ? &(PL_sv_immortals [0]) : &(PL_sv_immortals[2])),2|0); |
| 881 | SvSETMAGIC(ST(0))do { if (__builtin_expect(((((PL_stack_base[ax + (0)])->sv_flags & 0x00400000)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( PL_stack_base[ax + (0)]); } while (0); |
| 882 | } |
| 883 | XSRETURN_EMPTYdo { do { const IV tmpXSoff = (0); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); } while (0); |
| 884 | } |
| 885 | |
| 886 | |
| 887 | XS_EUPXS(XS_XS__Typemap_T_U_INT)static void XS_XS__Typemap_T_U_INT( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 888 | XS_EUPXS(XS_XS__Typemap_T_U_INT)static void XS_XS__Typemap_T_U_INT( CV* cv __attribute__((unused ))) |
| 889 | { |
| 890 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 891 | if (items != 1) |
| 892 | croak_xs_usagePerl_croak_xs_usage(cv, "uint"); |
| 893 | { |
| 894 | intUnsigned uint = (unsigned int)SvUV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x80000000 |0x00200000)) == (0x00000100|0x80000000)) ? ((XPVUV*) (PL_stack_base [ax + (0)])->sv_any)->xuv_u.xivu_uv : Perl_sv_2uv_flags ( PL_stack_base[ax + (0)],2)) |
| 895 | ; |
| 896 | intUnsigned RETVAL; |
| 897 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 898 | #line 463 "Typemap.xs" |
| 899 | RETVAL = uint; |
| 900 | #line 901 "Typemap.c" |
| 901 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((UV)RETVAL)do { do { UV TARGu_uv = (UV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= ( UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1)) ) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000) ; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ ,TARGu_uv); } while (0); (*++sp = (targ)); } while (0); |
| 902 | } |
| 903 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 904 | } |
| 905 | |
| 906 | |
| 907 | XS_EUPXS(XS_XS__Typemap_T_SHORT)static void XS_XS__Typemap_T_SHORT( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 908 | XS_EUPXS(XS_XS__Typemap_T_SHORT)static void XS_XS__Typemap_T_SHORT( CV* cv __attribute__((unused ))) |
| 909 | { |
| 910 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 911 | if (items != 1) |
| 912 | croak_xs_usagePerl_croak_xs_usage(cv, "s"); |
| 913 | { |
| 914 | short s = (short)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 915 | ; |
| 916 | short RETVAL; |
| 917 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 918 | #line 474 "Typemap.xs" |
| 919 | RETVAL = s; |
| 920 | #line 921 "Typemap.c" |
| 921 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 922 | } |
| 923 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 924 | } |
| 925 | |
| 926 | |
| 927 | XS_EUPXS(XS_XS__Typemap_T_U_SHORT)static void XS_XS__Typemap_T_U_SHORT( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 928 | XS_EUPXS(XS_XS__Typemap_T_U_SHORT)static void XS_XS__Typemap_T_U_SHORT( CV* cv __attribute__((unused ))) |
| 929 | { |
| 930 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 931 | if (items != 1) |
| 932 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 933 | { |
| 934 | U16 in = (unsigned short)SvUV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x80000000 |0x00200000)) == (0x00000100|0x80000000)) ? ((XPVUV*) (PL_stack_base [ax + (0)])->sv_any)->xuv_u.xivu_uv : Perl_sv_2uv_flags ( PL_stack_base[ax + (0)],2)) |
| 935 | ; |
| 936 | U16 RETVAL; |
| 937 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 938 | #line 485 "Typemap.xs" |
| 939 | RETVAL = in; |
| 940 | #line 941 "Typemap.c" |
| 941 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((UV)RETVAL)do { do { UV TARGu_uv = (UV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= ( UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1)) ) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000) ; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ ,TARGu_uv); } while (0); (*++sp = (targ)); } while (0); |
| 942 | } |
| 943 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 944 | } |
| 945 | |
| 946 | |
| 947 | XS_EUPXS(XS_XS__Typemap_T_LONG)static void XS_XS__Typemap_T_LONG( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 948 | XS_EUPXS(XS_XS__Typemap_T_LONG)static void XS_XS__Typemap_T_LONG( CV* cv __attribute__((unused ))) |
| 949 | { |
| 950 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 951 | if (items != 1) |
| 952 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 953 | { |
| 954 | intTLONG in = (long)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 955 | ; |
| 956 | intTLONG RETVAL; |
| 957 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 958 | #line 496 "Typemap.xs" |
| 959 | RETVAL = in; |
| 960 | #line 961 "Typemap.c" |
| 961 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 962 | } |
| 963 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 964 | } |
| 965 | |
| 966 | |
| 967 | XS_EUPXS(XS_XS__Typemap_T_U_LONG)static void XS_XS__Typemap_T_U_LONG( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 968 | XS_EUPXS(XS_XS__Typemap_T_U_LONG)static void XS_XS__Typemap_T_U_LONG( CV* cv __attribute__((unused ))) |
| 969 | { |
| 970 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 971 | if (items != 1) |
| 972 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 973 | { |
| 974 | U32 in = (unsigned long)SvUV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x80000000 |0x00200000)) == (0x00000100|0x80000000)) ? ((XPVUV*) (PL_stack_base [ax + (0)])->sv_any)->xuv_u.xivu_uv : Perl_sv_2uv_flags ( PL_stack_base[ax + (0)],2)) |
| 975 | ; |
| 976 | U32 RETVAL; |
| 977 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 978 | #line 506 "Typemap.xs" |
| 979 | RETVAL = in; |
| 980 | #line 981 "Typemap.c" |
| 981 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((UV)RETVAL)do { do { UV TARGu_uv = (UV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= ( UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1)) ) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000) ; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ ,TARGu_uv); } while (0); (*++sp = (targ)); } while (0); |
| 982 | } |
| 983 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 984 | } |
| 985 | |
| 986 | |
| 987 | XS_EUPXS(XS_XS__Typemap_T_CHAR)static void XS_XS__Typemap_T_CHAR( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 988 | XS_EUPXS(XS_XS__Typemap_T_CHAR)static void XS_XS__Typemap_T_CHAR( CV* cv __attribute__((unused ))) |
| 989 | { |
| 990 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 991 | if (items != 1) |
| 992 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 993 | { |
| 994 | char in = (char)*SvPV_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x00200000 )) == 0x00000400) ? ((PL_stack_base[ax + (0)])->sv_u.svu_pv ) : Perl_sv_2pv_flags( PL_stack_base[ax + (0)],0,2)) |
| 995 | ; |
| 996 | char RETVAL; |
| 997 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 998 | #line 517 "Typemap.xs" |
| 999 | RETVAL = in; |
| 1000 | #line 1001 "Typemap.c" |
| 1001 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHp((char *)&RETVAL, 1)do { Perl_sv_setpvn( targ,((char *)&RETVAL),(1)); do { do { if (__builtin_expect(((((targ)->sv_flags & 0x00400000 )) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( targ); } while ( 0); (*++sp = (targ)); } while (0); } while (0); |
| 1002 | } |
| 1003 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1004 | } |
| 1005 | |
| 1006 | |
| 1007 | XS_EUPXS(XS_XS__Typemap_T_U_CHAR)static void XS_XS__Typemap_T_U_CHAR( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1008 | XS_EUPXS(XS_XS__Typemap_T_U_CHAR)static void XS_XS__Typemap_T_U_CHAR( CV* cv __attribute__((unused ))) |
| 1009 | { |
| 1010 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1011 | if (items != 1) |
| 1012 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1013 | { |
| 1014 | unsigned char in = (unsigned char)SvUV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x80000000 |0x00200000)) == (0x00000100|0x80000000)) ? ((XPVUV*) (PL_stack_base [ax + (0)])->sv_any)->xuv_u.xivu_uv : Perl_sv_2uv_flags ( PL_stack_base[ax + (0)],2)) |
| 1015 | ; |
| 1016 | unsigned char RETVAL; |
| 1017 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1018 | #line 528 "Typemap.xs" |
| 1019 | RETVAL = in; |
| 1020 | #line 1021 "Typemap.c" |
| 1021 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHu((UV)RETVAL)do { do { UV TARGu_uv = (UV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1) & (TARGu_uv <= ( UV)((IV) ((~(UV)0) >> 1)))) ? (_Bool)1 : (_Bool)0),(1)) ) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000) ; targ->sv_u.svu_iv = TARGu_uv; } else Perl_sv_setuv_mg( targ ,TARGu_uv); } while (0); (*++sp = (targ)); } while (0); |
| 1022 | } |
| 1023 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1024 | } |
| 1025 | |
| 1026 | |
| 1027 | XS_EUPXS(XS_XS__Typemap_T_FLOAT)static void XS_XS__Typemap_T_FLOAT( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1028 | XS_EUPXS(XS_XS__Typemap_T_FLOAT)static void XS_XS__Typemap_T_FLOAT( CV* cv __attribute__((unused ))) |
| 1029 | { |
| 1030 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1031 | if (items != 1) |
| 1032 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1033 | { |
| 1034 | float in = (float)SvNV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000200|0x00200000 )) == 0x00000200) ? ((XPVNV*) (PL_stack_base[ax + (0)])->sv_any )->xnv_u.xnv_nv : Perl_sv_2nv_flags( PL_stack_base[ax + (0 )],2)) |
| 1035 | ; |
| 1036 | float RETVAL; |
| 1037 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1038 | #line 539 "Typemap.xs" |
| 1039 | RETVAL = in; |
| 1040 | #line 1041 "Typemap.c" |
| 1041 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHn((double)RETVAL)do { do { NV TARGn_nv = (double)RETVAL; if (__builtin_expect( (((((targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000))) == SVt_NV) & (1 ? ! (((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)0),(0)) ) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0),(1))) { ((void)0); (targ)->sv_flags |= (0x00000200|0x00002000); do { ((void)0); ((void)0); (((XPVNV*)(targ)->sv_any)->xnv_u .xnv_nv = (TARGn_nv)); } while (0); } else Perl_sv_setnv_mg( targ ,TARGn_nv); } while (0); (*++sp = (targ)); } while (0); |
| 1042 | } |
| 1043 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1044 | } |
| 1045 | |
| 1046 | |
| 1047 | XS_EUPXS(XS_XS__Typemap_T_NV)static void XS_XS__Typemap_T_NV( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1048 | XS_EUPXS(XS_XS__Typemap_T_NV)static void XS_XS__Typemap_T_NV( CV* cv __attribute__((unused ))) |
| 1049 | { |
| 1050 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1051 | if (items != 1) |
| 1052 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1053 | { |
| 1054 | NV in = (NV)SvNV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000200|0x00200000 )) == 0x00000200) ? ((XPVNV*) (PL_stack_base[ax + (0)])->sv_any )->xnv_u.xnv_nv : Perl_sv_2nv_flags( PL_stack_base[ax + (0 )],2)) |
| 1055 | ; |
| 1056 | NV RETVAL; |
| 1057 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1058 | #line 550 "Typemap.xs" |
| 1059 | RETVAL = in; |
| 1060 | #line 1061 "Typemap.c" |
| 1061 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHn((NV)RETVAL)do { do { NV TARGn_nv = (NV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000))) == SVt_NV) & (1 ? ! (((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)0),(0)) ) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0),(1))) { ((void)0); (targ)->sv_flags |= (0x00000200|0x00002000); do { ((void)0); ((void)0); (((XPVNV*)(targ)->sv_any)->xnv_u .xnv_nv = (TARGn_nv)); } while (0); } else Perl_sv_setnv_mg( targ ,TARGn_nv); } while (0); (*++sp = (targ)); } while (0); |
| 1062 | } |
| 1063 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1064 | } |
| 1065 | |
| 1066 | |
| 1067 | XS_EUPXS(XS_XS__Typemap_T_DOUBLE)static void XS_XS__Typemap_T_DOUBLE( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1068 | XS_EUPXS(XS_XS__Typemap_T_DOUBLE)static void XS_XS__Typemap_T_DOUBLE( CV* cv __attribute__((unused ))) |
| 1069 | { |
| 1070 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1071 | if (items != 1) |
| 1072 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1073 | { |
| 1074 | double in = (double)SvNV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000200|0x00200000 )) == 0x00000200) ? ((XPVNV*) (PL_stack_base[ax + (0)])->sv_any )->xnv_u.xnv_nv : Perl_sv_2nv_flags( PL_stack_base[ax + (0 )],2)) |
| 1075 | ; |
| 1076 | double RETVAL; |
| 1077 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1078 | #line 561 "Typemap.xs" |
| 1079 | RETVAL = in; |
| 1080 | #line 1081 "Typemap.c" |
| 1081 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHn((double)RETVAL)do { do { NV TARGn_nv = (double)RETVAL; if (__builtin_expect( (((((targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000))) == SVt_NV) & (1 ? ! (((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool)0),(0)) ) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0),(1))) { ((void)0); (targ)->sv_flags |= (0x00000200|0x00002000); do { ((void)0); ((void)0); (((XPVNV*)(targ)->sv_any)->xnv_u .xnv_nv = (TARGn_nv)); } while (0); } else Perl_sv_setnv_mg( targ ,TARGn_nv); } while (0); (*++sp = (targ)); } while (0); |
| 1082 | } |
| 1083 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1084 | } |
| 1085 | |
| 1086 | |
| 1087 | XS_EUPXS(XS_XS__Typemap_T_PV)static void XS_XS__Typemap_T_PV( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1088 | XS_EUPXS(XS_XS__Typemap_T_PV)static void XS_XS__Typemap_T_PV( CV* cv __attribute__((unused ))) |
| 1089 | { |
| 1090 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1091 | if (items != 1) |
| 1092 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1093 | { |
| 1094 | char * in = (char *)SvPV_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x00200000 )) == 0x00000400) ? ((PL_stack_base[ax + (0)])->sv_u.svu_pv ) : Perl_sv_2pv_flags( PL_stack_base[ax + (0)],0,2)) |
| 1095 | ; |
| 1096 | char * RETVAL; |
| 1097 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1098 | #line 572 "Typemap.xs" |
| 1099 | RETVAL = in; |
| 1100 | #line 1101 "Typemap.c" |
| 1101 | sv_setpv(TARG, RETVAL)Perl_sv_setpv( targ,RETVAL); XSprePUSH(sp = PL_stack_base + ax - 1); PUSHTARGdo { do { if (__builtin_expect(((((targ)->sv_flags & 0x00400000 )) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( targ); } while ( 0); (*++sp = (targ)); } while (0); |
| 1102 | } |
| 1103 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1104 | } |
| 1105 | |
| 1106 | |
| 1107 | XS_EUPXS(XS_XS__Typemap_T_PV_null)static void XS_XS__Typemap_T_PV_null( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1108 | XS_EUPXS(XS_XS__Typemap_T_PV_null)static void XS_XS__Typemap_T_PV_null( CV* cv __attribute__((unused ))) |
| 1109 | { |
| 1110 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1111 | if (items != 0) |
| 1112 | croak_xs_usagePerl_croak_xs_usage(cv, ""); |
| 1113 | { |
| 1114 | char * RETVAL; |
| 1115 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1116 | #line 579 "Typemap.xs" |
| 1117 | RETVAL = NULL((void*)0); |
| 1118 | #line 1119 "Typemap.c" |
| 1119 | sv_setpv(TARG, RETVAL)Perl_sv_setpv( targ,RETVAL); XSprePUSH(sp = PL_stack_base + ax - 1); PUSHTARGdo { do { if (__builtin_expect(((((targ)->sv_flags & 0x00400000 )) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( targ); } while ( 0); (*++sp = (targ)); } while (0); |
| 1120 | } |
| 1121 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1122 | } |
| 1123 | |
| 1124 | |
| 1125 | XS_EUPXS(XS_XS__Typemap_T_PTR_OUT)static void XS_XS__Typemap_T_PTR_OUT( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1126 | XS_EUPXS(XS_XS__Typemap_T_PTR_OUT)static void XS_XS__Typemap_T_PTR_OUT( CV* cv __attribute__((unused ))) |
| 1127 | { |
| 1128 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1129 | if (items != 1) |
| 1130 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1131 | { |
| 1132 | int in = (int)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 1133 | ; |
| 1134 | void * RETVAL; |
| 1135 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1136 | #line 593 "Typemap.xs" |
| 1137 | xst_anint = in; |
| 1138 | RETVAL = &xst_anint; |
| 1139 | #line 1140 "Typemap.c" |
| 1140 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi(PTR2IV(RETVAL))do { do { IV TARGi_iv = (IV)(RETVAL); if (__builtin_expect((( (((targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 1141 | } |
| 1142 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1143 | } |
| 1144 | |
| 1145 | |
| 1146 | XS_EUPXS(XS_XS__Typemap_T_PTR_IN)static void XS_XS__Typemap_T_PTR_IN( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1147 | XS_EUPXS(XS_XS__Typemap_T_PTR_IN)static void XS_XS__Typemap_T_PTR_IN( CV* cv __attribute__((unused ))) |
| 1148 | { |
| 1149 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1150 | if (items != 1) |
| 1151 | croak_xs_usagePerl_croak_xs_usage(cv, "ptr"); |
| 1152 | { |
| 1153 | void * ptr = INT2PTR(void *,SvIV(ST(0)))(void *)(((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100 |0x00200000)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + ( 0)])->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base [ax + (0)],2))) |
| 1154 | ; |
| 1155 | int RETVAL; |
| 1156 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1157 | #line 604 "Typemap.xs" |
| 1158 | RETVAL = *(int *)ptr; |
| 1159 | #line 1160 "Typemap.c" |
| 1160 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 1161 | } |
| 1162 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1163 | } |
| 1164 | |
| 1165 | |
| 1166 | XS_EUPXS(XS_XS__Typemap_T_PTRREF_OUT)static void XS_XS__Typemap_T_PTRREF_OUT( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1167 | XS_EUPXS(XS_XS__Typemap_T_PTRREF_OUT)static void XS_XS__Typemap_T_PTRREF_OUT( CV* cv __attribute__ ((unused))) |
| 1168 | { |
| 1169 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1170 | if (items != 1) |
| 1171 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1172 | { |
| 1173 | intRef in = (intRef)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 1174 | ; |
| 1175 | intRef * RETVAL; |
| 1176 | #line 619 "Typemap.xs" |
| 1177 | xst_anintref = in; |
| 1178 | RETVAL = &xst_anintref; |
| 1179 | #line 1180 "Typemap.c" |
| 1180 | { |
| 1181 | SV * RETVALSV; |
| 1182 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 1183 | sv_setref_pv(RETVALSV, Nullch, (void*)RETVAL)Perl_sv_setref_pv( RETVALSV,((char*)((void*)0)),(void*)RETVAL ); |
| 1184 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 1185 | } |
| 1186 | } |
| 1187 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1188 | } |
| 1189 | |
| 1190 | |
| 1191 | XS_EUPXS(XS_XS__Typemap_T_PTRREF_IN)static void XS_XS__Typemap_T_PTRREF_IN( CV* cv __attribute__( (unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1192 | XS_EUPXS(XS_XS__Typemap_T_PTRREF_IN)static void XS_XS__Typemap_T_PTRREF_IN( CV* cv __attribute__( (unused))) |
| 1193 | { |
| 1194 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1195 | if (items != 1) |
| 1196 | croak_xs_usagePerl_croak_xs_usage(cv, "ptr"); |
| 1197 | { |
| 1198 | intRef * ptr; |
| 1199 | intRef RETVAL; |
| 1200 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1201 | |
| 1202 | if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800)) { |
| 1203 | IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags & (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) (( SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)-> xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + ( 0)])->sv_u.svu_rv),2)); |
| 1204 | ptr = INT2PTR(intRef *,tmp)(intRef *)(tmp); |
| 1205 | } |
| 1206 | else |
| 1207 | Perl_croak_nocontextPerl_croak("%s: %s is not a reference", |
| 1208 | "XS::Typemap::T_PTRREF_IN", |
| 1209 | "ptr") |
| 1210 | ; |
| 1211 | #line 630 "Typemap.xs" |
| 1212 | RETVAL = *ptr; |
| 1213 | #line 1214 "Typemap.c" |
| 1214 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 1215 | } |
| 1216 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1217 | } |
| 1218 | |
| 1219 | |
| 1220 | XS_EUPXS(XS_XS__Typemap_T_PTROBJ_OUT)static void XS_XS__Typemap_T_PTROBJ_OUT( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1221 | XS_EUPXS(XS_XS__Typemap_T_PTROBJ_OUT)static void XS_XS__Typemap_T_PTROBJ_OUT( CV* cv __attribute__ ((unused))) |
| 1222 | { |
| 1223 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1224 | if (items != 1) |
| 1225 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1226 | { |
| 1227 | intObj in = (intObj)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 1228 | ; |
| 1229 | intObj * RETVAL; |
| 1230 | #line 645 "Typemap.xs" |
| 1231 | xst_anintobj = in; |
| 1232 | RETVAL = &xst_anintobj; |
| 1233 | #line 1234 "Typemap.c" |
| 1234 | { |
| 1235 | SV * RETVALSV; |
| 1236 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 1237 | sv_setref_pv(RETVALSV, "intObjPtr", (void*)RETVAL)Perl_sv_setref_pv( RETVALSV,"intObjPtr",(void*)RETVAL); |
| 1238 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 1239 | } |
| 1240 | } |
| 1241 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1242 | } |
| 1243 | |
| 1244 | |
| 1245 | XS_EUPXS(XS_intObjPtr_T_PTROBJ_IN)static void XS_intObjPtr_T_PTROBJ_IN( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1246 | XS_EUPXS(XS_intObjPtr_T_PTROBJ_IN)static void XS_intObjPtr_T_PTROBJ_IN( CV* cv __attribute__((unused ))) |
| 1247 | { |
| 1248 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1249 | if (items != 1) |
| 1250 | croak_xs_usagePerl_croak_xs_usage(cv, "ptr"); |
| 1251 | { |
| 1252 | intObj * ptr; |
| 1253 | intObj RETVAL; |
| 1254 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1255 | |
| 1256 | if (SvROK(ST(0))((PL_stack_base[ax + (0)])->sv_flags & 0x00000800) && sv_derived_from(ST(0), "intObjPtr")Perl_sv_derived_from( PL_stack_base[ax + (0)],"intObjPtr")) { |
| 1257 | IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags & (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) (( SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)-> xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + ( 0)])->sv_u.svu_rv),2)); |
| 1258 | ptr = INT2PTR(intObj *,tmp)(intObj *)(tmp); |
| 1259 | } |
| 1260 | else |
| 1261 | Perl_croak_nocontextPerl_croak("%s: %s is not of type %s", |
| 1262 | "intObjPtr::T_PTROBJ_IN", |
| 1263 | "ptr", "intObjPtr") |
| 1264 | ; |
| 1265 | #line 658 "Typemap.xs" |
| 1266 | RETVAL = *ptr; |
| 1267 | #line 1268 "Typemap.c" |
| 1268 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 1269 | } |
| 1270 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1271 | } |
| 1272 | |
| 1273 | |
| 1274 | XS_EUPXS(XS_XS__Typemap_T_REF_IV_PTR_OUT)static void XS_XS__Typemap_T_REF_IV_PTR_OUT( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1275 | XS_EUPXS(XS_XS__Typemap_T_REF_IV_PTR_OUT)static void XS_XS__Typemap_T_REF_IV_PTR_OUT( CV* cv __attribute__ ((unused))) |
| 1276 | { |
| 1277 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1278 | if (items != 1) |
| 1279 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1280 | { |
| 1281 | intRefIv in = (intRefIv)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 1282 | ; |
| 1283 | intRefIv * RETVAL; |
| 1284 | #line 679 "Typemap.xs" |
| 1285 | xst_anintrefiv = in; |
| 1286 | RETVAL = &xst_anintrefiv; |
| 1287 | #line 1288 "Typemap.c" |
| 1288 | { |
| 1289 | SV * RETVALSV; |
| 1290 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 1291 | sv_setref_pv(RETVALSV, "intRefIvPtr", (void*)RETVAL)Perl_sv_setref_pv( RETVALSV,"intRefIvPtr",(void*)RETVAL); |
| 1292 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 1293 | } |
| 1294 | } |
| 1295 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1296 | } |
| 1297 | |
| 1298 | |
| 1299 | XS_EUPXS(XS_intRefIvPtr_T_REF_IV_PTR_IN)static void XS_intRefIvPtr_T_REF_IV_PTR_IN( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1300 | XS_EUPXS(XS_intRefIvPtr_T_REF_IV_PTR_IN)static void XS_intRefIvPtr_T_REF_IV_PTR_IN( CV* cv __attribute__ ((unused))) |
| 1301 | { |
| 1302 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1303 | if (items != 1) |
| 1304 | croak_xs_usagePerl_croak_xs_usage(cv, "ptr"); |
| 1305 | { |
| 1306 | intRefIv * ptr; |
| 1307 | intRefIv RETVAL; |
| 1308 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1309 | |
| 1310 | if (sv_isa(ST(0), "intRefIvPtr")Perl_sv_isa( PL_stack_base[ax + (0)],"intRefIvPtr")) { |
| 1311 | IV tmp = SvIV((SV*)SvRV(ST(0)))(((((SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_flags & (0x00000100|0x00200000)) == 0x00000100) ? ((XPVIV*) (( SV*)((PL_stack_base[ax + (0)])->sv_u.svu_rv))->sv_any)-> xiv_u.xivu_iv : Perl_sv_2iv_flags( (SV*)((PL_stack_base[ax + ( 0)])->sv_u.svu_rv),2)); |
| 1312 | ptr = INT2PTR(intRefIv *, tmp)(intRefIv *)(tmp); |
| 1313 | } |
| 1314 | else |
| 1315 | Perl_croak_nocontextPerl_croak("%s: %s is not of type %s", |
| 1316 | "intRefIvPtr::T_REF_IV_PTR_IN", |
| 1317 | "ptr", "intRefIvPtr") |
| 1318 | ; |
| 1319 | #line 692 "Typemap.xs" |
| 1320 | RETVAL = *ptr; |
| 1321 | #line 1322 "Typemap.c" |
| 1322 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 1323 | } |
| 1324 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1325 | } |
| 1326 | |
| 1327 | |
| 1328 | XS_EUPXS(XS_XS__Typemap_T_OPAQUEPTR_IN)static void XS_XS__Typemap_T_OPAQUEPTR_IN( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1329 | XS_EUPXS(XS_XS__Typemap_T_OPAQUEPTR_IN)static void XS_XS__Typemap_T_OPAQUEPTR_IN( CV* cv __attribute__ ((unused))) |
| 1330 | { |
| 1331 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1332 | if (items != 1) |
| 1333 | croak_xs_usagePerl_croak_xs_usage(cv, "val"); |
| 1334 | { |
| 1335 | intOpq val = (intOpq)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 1336 | ; |
| 1337 | intOpq * RETVAL; |
| 1338 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1339 | #line 717 "Typemap.xs" |
| 1340 | xst_anintopq = val; |
| 1341 | RETVAL = &xst_anintopq; |
| 1342 | #line 1343 "Typemap.c" |
| 1343 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHp((char *)RETVAL, sizeof(*RETVAL))do { Perl_sv_setpvn( targ,((char *)RETVAL),(sizeof(*RETVAL))) ; do { do { if (__builtin_expect(((((targ)->sv_flags & 0x00400000)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( targ) ; } while (0); (*++sp = (targ)); } while (0); } while (0); |
| 1344 | } |
| 1345 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1346 | } |
| 1347 | |
| 1348 | |
| 1349 | XS_EUPXS(XS_XS__Typemap_T_OPAQUEPTR_OUT)static void XS_XS__Typemap_T_OPAQUEPTR_OUT( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1350 | XS_EUPXS(XS_XS__Typemap_T_OPAQUEPTR_OUT)static void XS_XS__Typemap_T_OPAQUEPTR_OUT( CV* cv __attribute__ ((unused))) |
| 1351 | { |
| 1352 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1353 | if (items != 1) |
| 1354 | croak_xs_usagePerl_croak_xs_usage(cv, "ptr"); |
| 1355 | { |
| 1356 | intOpq * ptr = (intOpq *)SvPV_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x00200000 )) == 0x00000400) ? ((PL_stack_base[ax + (0)])->sv_u.svu_pv ) : Perl_sv_2pv_flags( PL_stack_base[ax + (0)],0,2)) |
| 1357 | ; |
| 1358 | intOpq RETVAL; |
| 1359 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1360 | #line 726 "Typemap.xs" |
| 1361 | RETVAL = *ptr; |
| 1362 | #line 1363 "Typemap.c" |
| 1363 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 1364 | } |
| 1365 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1366 | } |
| 1367 | |
| 1368 | |
| 1369 | XS_EUPXS(XS_XS__Typemap_T_OPAQUEPTR_OUT_short)static void XS_XS__Typemap_T_OPAQUEPTR_OUT_short( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1370 | XS_EUPXS(XS_XS__Typemap_T_OPAQUEPTR_OUT_short)static void XS_XS__Typemap_T_OPAQUEPTR_OUT_short( CV* cv __attribute__ ((unused))) |
| 1371 | { |
| 1372 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1373 | if (items != 1) |
| 1374 | croak_xs_usagePerl_croak_xs_usage(cv, "ptr"); |
| 1375 | { |
| 1376 | shortOPQ * ptr = (shortOPQ *)SvPV_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x00200000 )) == 0x00000400) ? ((PL_stack_base[ax + (0)])->sv_u.svu_pv ) : Perl_sv_2pv_flags( PL_stack_base[ax + (0)],0,2)) |
| 1377 | ; |
| 1378 | short RETVAL; |
| 1379 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1380 | #line 734 "Typemap.xs" |
| 1381 | RETVAL = *ptr; |
| 1382 | #line 1383 "Typemap.c" |
| 1383 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 1384 | } |
| 1385 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1386 | } |
| 1387 | |
| 1388 | |
| 1389 | XS_EUPXS(XS_XS__Typemap_T_OPAQUEPTR_IN_struct)static void XS_XS__Typemap_T_OPAQUEPTR_IN_struct( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1390 | XS_EUPXS(XS_XS__Typemap_T_OPAQUEPTR_IN_struct)static void XS_XS__Typemap_T_OPAQUEPTR_IN_struct( CV* cv __attribute__ ((unused))) |
| 1391 | { |
| 1392 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1393 | if (items != 3) |
| 1394 | croak_xs_usagePerl_croak_xs_usage(cv, "a, b, c"); |
| 1395 | { |
| 1396 | int a = (int)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 1397 | ; |
| 1398 | int b = (int)SvIV(ST(1))((((PL_stack_base[ax + (1)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (1)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 1)],2)) |
| 1399 | ; |
| 1400 | double c = (double)SvNV(ST(2))((((PL_stack_base[ax + (2)])->sv_flags & (0x00000200|0x00200000 )) == 0x00000200) ? ((XPVNV*) (PL_stack_base[ax + (2)])->sv_any )->xnv_u.xnv_nv : Perl_sv_2nv_flags( PL_stack_base[ax + (2 )],2)) |
| 1401 | ; |
| 1402 | #line 745 "Typemap.xs" |
| 1403 | struct t_opaqueptr test; |
| 1404 | #line 1405 "Typemap.c" |
| 1405 | astruct * RETVAL; |
| 1406 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1407 | #line 747 "Typemap.xs" |
| 1408 | test.a = a; |
| 1409 | test.b = b; |
| 1410 | test.c = c; |
| 1411 | RETVAL = &test; |
| 1412 | #line 1413 "Typemap.c" |
| 1413 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHp((char *)RETVAL, sizeof(*RETVAL))do { Perl_sv_setpvn( targ,((char *)RETVAL),(sizeof(*RETVAL))) ; do { do { if (__builtin_expect(((((targ)->sv_flags & 0x00400000)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( targ) ; } while (0); (*++sp = (targ)); } while (0); } while (0); |
| 1414 | } |
| 1415 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1416 | } |
| 1417 | |
| 1418 | |
| 1419 | XS_EUPXS(XS_XS__Typemap_T_OPAQUEPTR_OUT_struct)static void XS_XS__Typemap_T_OPAQUEPTR_OUT_struct( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1420 | XS_EUPXS(XS_XS__Typemap_T_OPAQUEPTR_OUT_struct)static void XS_XS__Typemap_T_OPAQUEPTR_OUT_struct( CV* cv __attribute__ ((unused))) |
| 1421 | { |
| 1422 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1423 | if (items != 1) |
| 1424 | croak_xs_usagePerl_croak_xs_usage(cv, "test"); |
| 1425 | PERL_UNUSED_VAR(ax)((void)sizeof(ax)); /* -Wall */ |
| 1426 | SPsp -= items; |
| 1427 | { |
| 1428 | astruct * test = (astruct *)SvPV_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x00200000 )) == 0x00000400) ? ((PL_stack_base[ax + (0)])->sv_u.svu_pv ) : Perl_sv_2pv_flags( PL_stack_base[ax + (0)],0,2)) |
| 1429 | ; |
| 1430 | #line 758 "Typemap.xs" |
| 1431 | XPUSHs(sv_2mortal(newSViv(test->a)))do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max - (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow ( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t) (1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); * ++sp = (Perl_sv_2mortal( Perl_newSViv( test->a))); } while (0); |
| 1432 | XPUSHs(sv_2mortal(newSViv(test->b)))do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max - (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow ( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t) (1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); * ++sp = (Perl_sv_2mortal( Perl_newSViv( test->b))); } while (0); |
| 1433 | XPUSHs(sv_2mortal(newSVnv(test->c)))do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max - (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow ( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t) (1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); * ++sp = (Perl_sv_2mortal( Perl_newSVnv( test->c))); } while (0); |
| 1434 | #line 1435 "Typemap.c" |
| 1435 | PUTBACKPL_stack_sp = sp; |
| 1436 | return; |
| 1437 | } |
| 1438 | } |
| 1439 | |
| 1440 | |
| 1441 | XS_EUPXS(XS_XS__Typemap_T_OPAQUE_IN)static void XS_XS__Typemap_T_OPAQUE_IN( CV* cv __attribute__( (unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1442 | XS_EUPXS(XS_XS__Typemap_T_OPAQUE_IN)static void XS_XS__Typemap_T_OPAQUE_IN( CV* cv __attribute__( (unused))) |
| 1443 | { |
| 1444 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1445 | if (items != 1) |
| 1446 | croak_xs_usagePerl_croak_xs_usage(cv, "val"); |
| 1447 | { |
| 1448 | int val = (int)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 1449 | ; |
| 1450 | shortOPQ RETVAL; |
| 1451 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1452 | #line 769 "Typemap.xs" |
| 1453 | RETVAL = (shortOPQ)val; |
| 1454 | #line 1455 "Typemap.c" |
| 1455 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHp((char *)&RETVAL, sizeof(RETVAL))do { Perl_sv_setpvn( targ,((char *)&RETVAL),(sizeof(RETVAL ))); do { do { if (__builtin_expect(((((targ)->sv_flags & 0x00400000)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( targ) ; } while (0); (*++sp = (targ)); } while (0); } while (0); |
| 1456 | } |
| 1457 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1458 | } |
| 1459 | |
| 1460 | |
| 1461 | XS_EUPXS(XS_XS__Typemap_T_OPAQUE_OUT)static void XS_XS__Typemap_T_OPAQUE_OUT( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1462 | XS_EUPXS(XS_XS__Typemap_T_OPAQUE_OUT)static void XS_XS__Typemap_T_OPAQUE_OUT( CV* cv __attribute__ ((unused))) |
| 1463 | { |
| 1464 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1465 | if (items != 1) |
| 1466 | croak_xs_usagePerl_croak_xs_usage(cv, "val"); |
| 1467 | { |
| 1468 | shortOPQ val = *(shortOPQ *)SvPV_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x00200000 )) == 0x00000400) ? ((PL_stack_base[ax + (0)])->sv_u.svu_pv ) : Perl_sv_2pv_flags( PL_stack_base[ax + (0)],0,2)) |
| 1469 | ; |
| 1470 | IV RETVAL; |
| 1471 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1472 | #line 777 "Typemap.xs" |
| 1473 | RETVAL = (IV)val; |
| 1474 | #line 1475 "Typemap.c" |
| 1475 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 1476 | } |
| 1477 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1478 | } |
| 1479 | |
| 1480 | |
| 1481 | XS_EUPXS(XS_XS__Typemap_T_OPAQUE_array)static void XS_XS__Typemap_T_OPAQUE_array( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1482 | XS_EUPXS(XS_XS__Typemap_T_OPAQUE_array)static void XS_XS__Typemap_T_OPAQUE_array( CV* cv __attribute__ ((unused))) |
| 1483 | { |
| 1484 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1485 | if (items != 3) |
| 1486 | croak_xs_usagePerl_croak_xs_usage(cv, "a, b, c"); |
| 1487 | { |
| 1488 | int a = (int)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 1489 | ; |
| 1490 | int b = (int)SvIV(ST(1))((((PL_stack_base[ax + (1)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (1)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 1)],2)) |
| 1491 | ; |
| 1492 | int c = (int)SvIV(ST(2))((((PL_stack_base[ax + (2)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (2)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 2)],2)) |
| 1493 | ; |
| 1494 | #line 787 "Typemap.xs" |
| 1495 | int array[3]; |
| 1496 | #line 1497 "Typemap.c" |
| 1497 | int * RETVAL; |
| 1498 | #line 789 "Typemap.xs" |
| 1499 | array[0] = a; |
| 1500 | array[1] = b; |
| 1501 | array[2] = c; |
| 1502 | RETVAL = array; |
| 1503 | #line 1504 "Typemap.c" |
| 1504 | ST(0)PL_stack_base[ax + (0)] = sv_newmortal()Perl_sv_newmortal(); |
| 1505 | sv_setpvn(ST(0), (char *)RETVAL, 3 * sizeof(int))Perl_sv_setpvn( PL_stack_base[ax + (0)],(char *)RETVAL,3 * sizeof (int)); |
| 1506 | } |
| 1507 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1508 | } |
| 1509 | |
| 1510 | |
| 1511 | XS_EUPXS(XS_XS__Typemap_T_PACKED_in)static void XS_XS__Typemap_T_PACKED_in( CV* cv __attribute__( (unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1512 | XS_EUPXS(XS_XS__Typemap_T_PACKED_in)static void XS_XS__Typemap_T_PACKED_in( CV* cv __attribute__( (unused))) |
| 1513 | { |
| 1514 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1515 | if (items != 1) |
| 1516 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1517 | PERL_UNUSED_VAR(ax)((void)sizeof(ax)); /* -Wall */ |
| 1518 | SPsp -= items; |
| 1519 | { |
| 1520 | anotherstruct * in = XS_unpack_anotherstructPtr(ST(0)PL_stack_base[ax + (0)]) |
| 1521 | ; |
| 1522 | #line 803 "Typemap.xs" |
| 1523 | mXPUSHi(in->a)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max - (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow ( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t) (1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); Perl_sv_setiv ( (*++sp = (Perl_sv_newmortal())),(IV)(in->a)); } while (0 ); |
| 1524 | mXPUSHi(in->b)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max - (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow ( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t) (1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); Perl_sv_setiv ( (*++sp = (Perl_sv_newmortal())),(IV)(in->b)); } while (0 ); |
| 1525 | mXPUSHn(in->c)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max - (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow ( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t) (1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); Perl_sv_setnv ( (*++sp = (Perl_sv_newmortal())),(NV)(in->c)); } while (0 ); |
| 1526 | Safefree(in)Perl_safesysfree(((void *)(in))); |
| 1527 | XSRETURN(3)do { const IV tmpXSoff = (3); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1528 | #line 1529 "Typemap.c" |
| 1529 | PUTBACKPL_stack_sp = sp; |
| 1530 | return; |
| 1531 | } |
| 1532 | } |
| 1533 | |
| 1534 | |
| 1535 | XS_EUPXS(XS_XS__Typemap_T_PACKED_out)static void XS_XS__Typemap_T_PACKED_out( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1536 | XS_EUPXS(XS_XS__Typemap_T_PACKED_out)static void XS_XS__Typemap_T_PACKED_out( CV* cv __attribute__ ((unused))) |
| 1537 | { |
| 1538 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1539 | if (items != 3) |
| 1540 | croak_xs_usagePerl_croak_xs_usage(cv, "a, b, c"); |
| 1541 | { |
| 1542 | int a = (int)SvIV(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (0)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 0)],2)) |
| 1543 | ; |
| 1544 | int b = (int)SvIV(ST(1))((((PL_stack_base[ax + (1)])->sv_flags & (0x00000100|0x00200000 )) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + (1)])->sv_any )->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base[ax + ( 1)],2)) |
| 1545 | ; |
| 1546 | double c = (double)SvNV(ST(2))((((PL_stack_base[ax + (2)])->sv_flags & (0x00000200|0x00200000 )) == 0x00000200) ? ((XPVNV*) (PL_stack_base[ax + (2)])->sv_any )->xnv_u.xnv_nv : Perl_sv_2nv_flags( PL_stack_base[ax + (2 )],2)) |
| 1547 | ; |
| 1548 | anotherstruct * RETVAL; |
| 1549 | #line 815 "Typemap.xs" |
| 1550 | Newxz(RETVAL, 1, anotherstruct)(RETVAL = ((void)(__builtin_expect(((((( sizeof(size_t) < sizeof (1) || sizeof(anotherstruct) > ((size_t)1 << 8*(sizeof (size_t) - sizeof(1)))) ? (size_t)(1) : ((size_t)-1)/sizeof(anotherstruct )) > ((size_t)-1)/sizeof(anotherstruct))) ? (_Bool)1 : (_Bool )0),(0)) && (Perl_croak_memory_wrap(),0)), (anotherstruct *)(Perl_safesyscalloc((1),sizeof(anotherstruct))))); |
| 1551 | RETVAL->a = a; |
| 1552 | RETVAL->b = b; |
| 1553 | RETVAL->c = c; |
| 1554 | #line 1555 "Typemap.c" |
| 1555 | { |
| 1556 | SV * RETVALSV; |
| 1557 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 1558 | XS_pack_anotherstructPtr(RETVALSV, RETVAL); |
| 1559 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 1560 | } |
| 1561 | #line 821 "Typemap.xs" |
| 1562 | Safefree(RETVAL)Perl_safesysfree(((void *)(RETVAL))); |
| 1563 | #line 1564 "Typemap.c" |
| 1564 | } |
| 1565 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1566 | } |
| 1567 | |
| 1568 | |
| 1569 | XS_EUPXS(XS_XS__Typemap_T_PACKEDARRAY_in)static void XS_XS__Typemap_T_PACKEDARRAY_in( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1570 | XS_EUPXS(XS_XS__Typemap_T_PACKEDARRAY_in)static void XS_XS__Typemap_T_PACKEDARRAY_in( CV* cv __attribute__ ((unused))) |
| 1571 | { |
| 1572 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1573 | if (items != 1) |
| 1574 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1575 | PERL_UNUSED_VAR(ax)((void)sizeof(ax)); /* -Wall */ |
| 1576 | SPsp -= items; |
| 1577 | { |
| 1578 | anotherstruct ** in = XS_unpack_anotherstructPtrPtr(ST(0)PL_stack_base[ax + (0)]) |
| 1579 | ; |
| 1580 | #line 829 "Typemap.xs" |
| 1581 | unsigned int i = 0; |
| 1582 | #line 1583 "Typemap.c" |
| 1583 | #line 831 "Typemap.xs" |
| 1584 | while (in[i] != NULL((void*)0)) { |
| 1585 | mXPUSHi(in[i]->a)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max - (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow ( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t) (1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); Perl_sv_setiv ( (*++sp = (Perl_sv_newmortal())),(IV)(in[i]->a)); } while (0); |
| 1586 | mXPUSHi(in[i]->b)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max - (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow ( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t) (1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); Perl_sv_setiv ( (*++sp = (Perl_sv_newmortal())),(IV)(in[i]->b)); } while (0); |
| 1587 | mXPUSHn(in[i]->c)do { do { (void)0; if (__builtin_expect(((((1) < 0 || PL_stack_max - (sp) < (1))) ? (_Bool)1 : (_Bool)0),(0))) { sp = Perl_stack_grow ( sp,sp,(sizeof(1) > sizeof(ssize_t) && ((ssize_t) (1) != (1)) ? -1 : (1))); ((void)sizeof(sp)); } } while (0); Perl_sv_setnv ( (*++sp = (Perl_sv_newmortal())),(NV)(in[i]->c)); } while (0); |
| 1588 | ++i; |
| 1589 | } |
| 1590 | XS_release_anotherstructPtrPtr(in); |
| 1591 | XSRETURN(3*i)do { const IV tmpXSoff = (3*i); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1592 | #line 1593 "Typemap.c" |
| 1593 | PUTBACKPL_stack_sp = sp; |
| 1594 | return; |
| 1595 | } |
| 1596 | } |
| 1597 | |
| 1598 | |
| 1599 | XS_EUPXS(XS_XS__Typemap_T_PACKEDARRAY_out)static void XS_XS__Typemap_T_PACKEDARRAY_out( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1600 | XS_EUPXS(XS_XS__Typemap_T_PACKEDARRAY_out)static void XS_XS__Typemap_T_PACKEDARRAY_out( CV* cv __attribute__ ((unused))) |
| 1601 | { |
| 1602 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1603 | PERL_UNUSED_VAR(cv)((void)sizeof(cv)); /* -W */ |
| 1604 | PERL_UNUSED_VAR(items)((void)sizeof(items)); /* -W */ |
| 1605 | { |
| 1606 | #line 843 "Typemap.xs" |
| 1607 | unsigned int i, nstructs, count_anotherstructPtrPtr; |
| 1608 | #line 1609 "Typemap.c" |
| 1609 | anotherstruct ** RETVAL; |
| 1610 | #line 845 "Typemap.xs" |
| 1611 | if ((items % 3) != 0) |
| 1612 | croakPerl_croak("Need nitems divisible by 3"); |
| 1613 | nstructs = (unsigned int)(items / 3); |
| 1614 | count_anotherstructPtrPtr = nstructs; |
| 1615 | Newxz(RETVAL, nstructs+1, anotherstruct *)(RETVAL = ((void)(__builtin_expect(((((( sizeof(size_t) < sizeof (nstructs+1) || sizeof(anotherstruct *) > ((size_t)1 << 8*(sizeof(size_t) - sizeof(nstructs+1)))) ? (size_t)(nstructs +1) : ((size_t)-1)/sizeof(anotherstruct *)) > ((size_t)-1) /sizeof(anotherstruct *))) ? (_Bool)1 : (_Bool)0),(0)) && (Perl_croak_memory_wrap(),0)), (anotherstruct **)(Perl_safesyscalloc ((nstructs+1),sizeof(anotherstruct *))))); |
| 1616 | for (i = 0; i < nstructs; ++i) { |
| 1617 | Newxz(RETVAL[i], 1, anotherstruct)(RETVAL[i] = ((void)(__builtin_expect(((((( sizeof(size_t) < sizeof(1) || sizeof(anotherstruct) > ((size_t)1 << 8 *(sizeof(size_t) - sizeof(1)))) ? (size_t)(1) : ((size_t)-1)/ sizeof(anotherstruct)) > ((size_t)-1)/sizeof(anotherstruct ))) ? (_Bool)1 : (_Bool)0),(0)) && (Perl_croak_memory_wrap (),0)), (anotherstruct*)(Perl_safesyscalloc((1),sizeof(anotherstruct ))))); |
| 1618 | RETVAL[i]->a = SvIV(ST(3*i))((((PL_stack_base[ax + (3*i)])->sv_flags & (0x00000100 |0x00200000)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + ( 3*i)])->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base [ax + (3*i)],2)); |
| 1619 | RETVAL[i]->b = SvIV(ST(3*i+1))((((PL_stack_base[ax + (3*i+1)])->sv_flags & (0x00000100 |0x00200000)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + ( 3*i+1)])->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags( PL_stack_base [ax + (3*i+1)],2)); |
| 1620 | RETVAL[i]->c = SvNV(ST(3*i+2))((((PL_stack_base[ax + (3*i+2)])->sv_flags & (0x00000200 |0x00200000)) == 0x00000200) ? ((XPVNV*) (PL_stack_base[ax + ( 3*i+2)])->sv_any)->xnv_u.xnv_nv : Perl_sv_2nv_flags( PL_stack_base [ax + (3*i+2)],2)); |
| 1621 | } |
| 1622 | #line 1623 "Typemap.c" |
| 1623 | { |
| 1624 | SV * RETVALSV; |
| 1625 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 1626 | XS_pack_anotherstructPtrPtr(RETVALSV, RETVAL, count_anotherstructPtrPtr); |
| 1627 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 1628 | } |
| 1629 | #line 858 "Typemap.xs" |
| 1630 | XS_release_anotherstructPtrPtr(RETVAL); |
| 1631 | #line 1632 "Typemap.c" |
| 1632 | } |
| 1633 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1634 | } |
| 1635 | |
| 1636 | |
| 1637 | XS_EUPXS(XS_XS__Typemap_T_ARRAY)static void XS_XS__Typemap_T_ARRAY( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1638 | XS_EUPXS(XS_XS__Typemap_T_ARRAY)static void XS_XS__Typemap_T_ARRAY( CV* cv __attribute__((unused ))) |
| 1639 | { |
| 1640 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1641 | if (items < 2) |
| 1642 | croak_xs_usagePerl_croak_xs_usage(cv, "dummy, array, ..."); |
| 1643 | { |
| 1644 | int dummy = 0; |
| 1645 | intArray * array; |
| 1646 | #line 888 "Typemap.xs" |
| 1647 | U32 size_RETVAL; |
| 1648 | #line 1649 "Typemap.c" |
| 1649 | intArray * RETVAL; |
| 1650 | |
| 1651 | U32 ix_array = 1; |
| 1652 | array = intArrayPtr(items -= 1); |
| 1653 | while (items--) { |
| 1654 | array[ix_array - 1] = (int)SvIV(ST(ix_array))((((PL_stack_base[ax + (ix_array)])->sv_flags & (0x00000100 |0x00200000)) == 0x00000100) ? ((XPVIV*) (PL_stack_base[ax + ( ix_array)])->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags ( PL_stack_base[ax + (ix_array)],2)) |
| 1655 | ; |
| 1656 | ix_array++; |
| 1657 | } |
| 1658 | /* this is the number of elements in the array */ |
| 1659 | ix_array -= 1 |
| 1660 | ; |
| 1661 | #line 890 "Typemap.xs" |
| 1662 | dummy += 0; /* Fix -Wall */ |
Value stored to 'dummy' is never read | |
| 1663 | size_RETVAL = ix_array; |
| 1664 | RETVAL = array; |
| 1665 | #line 1666 "Typemap.c" |
| 1666 | { |
| 1667 | U32 ix_RETVAL; |
| 1668 | SSize_tssize_t extend_size = |
| 1669 | /* The weird way this is written is because g++ is dumb |
| 1670 | * enough to warn "comparison is always false" on something |
| 1671 | * like: |
| 1672 | * |
| 1673 | * sizeof(a) > sizeof(b) && a > B_t_MAX |
| 1674 | * |
| 1675 | * (where the LH condition is false) |
| 1676 | */ |
| 1677 | (size_RETVAL > (sizeof(size_RETVAL) > sizeof(SSize_tssize_t) |
| 1678 | ? SSize_t_MAX(ssize_t)(~(size_t)0 >> 1) : size_RETVAL)) |
| 1679 | ? -1 : (SSize_tssize_t)size_RETVAL; |
| 1680 | EXTEND(SP, extend_size)do { (void)0; if (__builtin_expect(((((extend_size) < 0 || PL_stack_max - (sp) < (extend_size))) ? (_Bool)1 : (_Bool )0),(0))) { sp = Perl_stack_grow( sp,sp,(sizeof(extend_size) > sizeof(ssize_t) && ((ssize_t)(extend_size) != (extend_size )) ? -1 : (extend_size))); ((void)sizeof(sp)); } } while (0); |
| 1681 | for (ix_RETVAL = 0; ix_RETVAL < size_RETVAL; ix_RETVAL++) { |
| 1682 | ST(ix_RETVAL)PL_stack_base[ax + (ix_RETVAL)] = sv_newmortal()Perl_sv_newmortal(); |
| 1683 | sv_setiv(ST(ix_RETVAL), (IV)RETVAL[ix_RETVAL])Perl_sv_setiv( PL_stack_base[ax + (ix_RETVAL)],(IV)RETVAL[ix_RETVAL ]); |
| 1684 | } |
| 1685 | } |
| 1686 | #line 896 "Typemap.xs" |
| 1687 | Safefree(array)Perl_safesysfree(((void *)(array))); |
| 1688 | XSRETURN(size_RETVAL)do { const IV tmpXSoff = (size_RETVAL); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1689 | #line 1690 "Typemap.c" |
| 1690 | } |
| 1691 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1692 | } |
| 1693 | |
| 1694 | |
| 1695 | XS_EUPXS(XS_XS__Typemap_T_STDIO_open)static void XS_XS__Typemap_T_STDIO_open( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1696 | XS_EUPXS(XS_XS__Typemap_T_STDIO_open)static void XS_XS__Typemap_T_STDIO_open( CV* cv __attribute__ ((unused))) |
| 1697 | { |
| 1698 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1699 | if (items != 1) |
| 1700 | croak_xs_usagePerl_croak_xs_usage(cv, "file"); |
| 1701 | { |
| 1702 | const char * file = (const char *)SvPV_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x00200000 )) == 0x00000400) ? ((PL_stack_base[ax + (0)])->sv_u.svu_pv ) : Perl_sv_2pv_flags( PL_stack_base[ax + (0)],0,2)) |
| 1703 | ; |
| 1704 | FILE * RETVAL; |
| 1705 | #line 906 "Typemap.xs" |
| 1706 | RETVAL = xsfopen( file ); |
| 1707 | #line 1708 "Typemap.c" |
| 1708 | { |
| 1709 | SV * RETVALSV; |
| 1710 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 1711 | { |
| 1712 | GV *gv = (GV *)sv_newmortal()Perl_sv_newmortal(); |
| 1713 | PerlIOPerlIO *fp = PerlIO_importFILE(RETVAL,0); |
| 1714 | gv_init_pvn(gv, gv_stashpvs("XS::Typemap",1),"__ANONIO__",10,0)Perl_gv_init_pvn( gv,Perl_gv_stashpvn( ("" "XS::Typemap" ""), (sizeof("XS::Typemap")-1), 1),"__ANONIO__",10,0); |
| 1715 | if ( fp && do_open(gv, "+<&", 3, FALSE, 0, 0, fp)Perl_do_openn( gv,"+<&",3,(0),0,0,fp,(SV **) ((void*)0 ),0) ) { |
| 1716 | SV *rv = newRV_inc((SV*)gv)Perl_newRV( (SV*)gv); |
| 1717 | rv = sv_bless(rv, GvSTASH(gv))Perl_sv_bless( rv,(((XPVGV*)(gv)->sv_any)->xnv_u.xgv_stash )); |
| 1718 | RETVALSV = sv_2mortal(rv)Perl_sv_2mortal( rv); |
| 1719 | } |
| 1720 | } |
| 1721 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 1722 | } |
| 1723 | } |
| 1724 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1725 | } |
| 1726 | |
| 1727 | |
| 1728 | XS_EUPXS(XS_XS__Typemap_T_STDIO_open_ret_in_arg)static void XS_XS__Typemap_T_STDIO_open_ret_in_arg( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1729 | XS_EUPXS(XS_XS__Typemap_T_STDIO_open_ret_in_arg)static void XS_XS__Typemap_T_STDIO_open_ret_in_arg( CV* cv __attribute__ ((unused))) |
| 1730 | { |
| 1731 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1732 | if (items != 2) |
| 1733 | croak_xs_usagePerl_croak_xs_usage(cv, "file, io"); |
| 1734 | { |
| 1735 | const char * file = (const char *)SvPV_nolen(ST(0))((((PL_stack_base[ax + (0)])->sv_flags & (0x00000400|0x00200000 )) == 0x00000400) ? ((PL_stack_base[ax + (0)])->sv_u.svu_pv ) : Perl_sv_2pv_flags( PL_stack_base[ax + (0)],0,2)) |
| 1736 | ; |
| 1737 | FILE * io; |
| 1738 | #line 915 "Typemap.xs" |
| 1739 | io = xsfopen( file ); |
| 1740 | #line 1741 "Typemap.c" |
| 1741 | { |
| 1742 | GV *gv = (GV *)sv_newmortal()Perl_sv_newmortal(); |
| 1743 | PerlIOPerlIO *fp = PerlIO_importFILE(io,0); |
| 1744 | gv_init_pvn(gv, gv_stashpvs("XS::Typemap",1),"__ANONIO__",10,0)Perl_gv_init_pvn( gv,Perl_gv_stashpvn( ("" "XS::Typemap" ""), (sizeof("XS::Typemap")-1), 1),"__ANONIO__",10,0); |
| 1745 | if ( fp && do_open(gv, "+<&", 3, FALSE, 0, 0, fp)Perl_do_openn( gv,"+<&",3,(0),0,0,fp,(SV **) ((void*)0 ),0) ) { |
| 1746 | SV *rv = newRV_inc((SV*)gv)Perl_newRV( (SV*)gv); |
| 1747 | rv = sv_bless(rv, GvSTASH(gv))Perl_sv_bless( rv,(((XPVGV*)(gv)->sv_any)->xnv_u.xgv_stash )); |
| 1748 | sv_setsv(ST(1), rv)Perl_sv_setsv_flags( PL_stack_base[ax + (1)],rv,2|0); |
| 1749 | SvREFCNT_dec_NN(rv)Perl_SvREFCNT_dec_NN( ((SV *)({ void *_p = (rv); _p; }))); |
| 1750 | } |
| 1751 | else |
| 1752 | sv_setsv(ST(1), &PL_sv_undef)Perl_sv_setsv_flags( PL_stack_base[ax + (1)],&(PL_sv_immortals [1]),2|0); |
| 1753 | |
| 1754 | } |
| 1755 | SvSETMAGIC(ST(1))do { if (__builtin_expect(((((PL_stack_base[ax + (1)])->sv_flags & 0x00400000)) ? (_Bool)1 : (_Bool)0),(0))) Perl_mg_set( PL_stack_base[ax + (1)]); } while (0); |
| 1756 | } |
| 1757 | XSRETURN_EMPTYdo { do { const IV tmpXSoff = (0); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); } while (0); |
| 1758 | } |
| 1759 | |
| 1760 | |
| 1761 | XS_EUPXS(XS_XS__Typemap_T_STDIO_close)static void XS_XS__Typemap_T_STDIO_close( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1762 | XS_EUPXS(XS_XS__Typemap_T_STDIO_close)static void XS_XS__Typemap_T_STDIO_close( CV* cv __attribute__ ((unused))) |
| 1763 | { |
| 1764 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1765 | if (items != 1) |
| 1766 | croak_xs_usagePerl_croak_xs_usage(cv, "f"); |
| 1767 | { |
| 1768 | PerlIOPerlIO * f = IoIFP(sv_2io(ST(0)))(Perl_sv_2io( PL_stack_base[ax + (0)]))->sv_u.svu_fp |
| 1769 | ; |
| 1770 | #line 923 "Typemap.xs" |
| 1771 | FILE * stream; |
| 1772 | #line 1773 "Typemap.c" |
| 1773 | SysRet RETVAL; |
| 1774 | #line 925 "Typemap.xs" |
| 1775 | /* Get the FILE* */ |
| 1776 | stream = PerlIO_findFILE( f ); |
| 1777 | /* Release the FILE* from the PerlIO system so that we do |
| 1778 | not close the file twice */ |
| 1779 | PerlIO_releaseFILE(f,stream); |
| 1780 | /* Must release the file before closing it */ |
| 1781 | RETVAL = xsfclose( stream ); |
| 1782 | #line 1783 "Typemap.c" |
| 1783 | { |
| 1784 | SV * RETVALSV; |
| 1785 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 1786 | if (RETVAL != -1) { |
| 1787 | if (RETVAL == 0) |
| 1788 | sv_setpvn(RETVALSV, "0 but true", 10)Perl_sv_setpvn( RETVALSV,"0 but true",10); |
| 1789 | else |
| 1790 | sv_setiv(RETVALSV, (IV)RETVAL)Perl_sv_setiv( RETVALSV,(IV)RETVAL); |
| 1791 | } |
| 1792 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 1793 | } |
| 1794 | } |
| 1795 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1796 | } |
| 1797 | |
| 1798 | |
| 1799 | XS_EUPXS(XS_XS__Typemap_T_STDIO_print)static void XS_XS__Typemap_T_STDIO_print( CV* cv __attribute__ ((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1800 | XS_EUPXS(XS_XS__Typemap_T_STDIO_print)static void XS_XS__Typemap_T_STDIO_print( CV* cv __attribute__ ((unused))) |
| 1801 | { |
| 1802 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1803 | if (items != 2) |
| 1804 | croak_xs_usagePerl_croak_xs_usage(cv, "stream, string"); |
| 1805 | { |
| 1806 | FILE * stream = PerlIO_findFILE(IoIFP(sv_2io(ST(0)))(Perl_sv_2io( PL_stack_base[ax + (0)]))->sv_u.svu_fp) |
| 1807 | ; |
| 1808 | const char * string = (const char *)SvPV_nolen(ST(1))((((PL_stack_base[ax + (1)])->sv_flags & (0x00000400|0x00200000 )) == 0x00000400) ? ((PL_stack_base[ax + (1)])->sv_u.svu_pv ) : Perl_sv_2pv_flags( PL_stack_base[ax + (1)],0,2)) |
| 1809 | ; |
| 1810 | int RETVAL; |
| 1811 | dXSTARGSV * const targ = ((PL_op->op_private & 0x04) ? (PL_curpad [PL_op->op_targ]) : Perl_sv_newmortal()); |
| 1812 | #line 940 "Typemap.xs" |
| 1813 | RETVAL = xsfprintf( stream, string ); |
| 1814 | #line 1815 "Typemap.c" |
| 1815 | XSprePUSH(sp = PL_stack_base + ax - 1); PUSHi((IV)RETVAL)do { do { IV TARGi_iv = (IV)RETVAL; if (__builtin_expect((((( (targ)->sv_flags & (0xff|(0x08000000|0x00010000|0x00000800 |0x01000000 |0x00800000|0x10000000)|0x80000000)) == SVt_IV) & (1 ? !(((__builtin_expect(((PL_tainted) ? (_Bool)1 : (_Bool) 0),(0))) ? (_Bool)1 : (_Bool)0)) : 1)) ? (_Bool)1 : (_Bool)0) ,(1))) { ((void)0); (targ)->sv_flags |= (0x00000100|0x00001000 ); targ->sv_u.svu_iv = TARGi_iv; } else Perl_sv_setiv_mg( targ ,TARGi_iv); } while (0); (*++sp = (targ)); } while (0); |
| 1816 | } |
| 1817 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1818 | } |
| 1819 | |
| 1820 | |
| 1821 | XS_EUPXS(XS_XS__Typemap_T_INOUT)static void XS_XS__Typemap_T_INOUT( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1822 | XS_EUPXS(XS_XS__Typemap_T_INOUT)static void XS_XS__Typemap_T_INOUT( CV* cv __attribute__((unused ))) |
| 1823 | { |
| 1824 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1825 | if (items != 1) |
| 1826 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1827 | { |
| 1828 | PerlIOPerlIO * in = IoIFP(sv_2io(ST(0)))(Perl_sv_2io( PL_stack_base[ax + (0)]))->sv_u.svu_fp |
| 1829 | ; |
| 1830 | PerlIOPerlIO * RETVAL; |
| 1831 | #line 951 "Typemap.xs" |
| 1832 | RETVAL = in; /* silly test but better than nothing */ |
| 1833 | #line 1834 "Typemap.c" |
| 1834 | { |
| 1835 | SV * RETVALSV; |
| 1836 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 1837 | { |
| 1838 | GV *gv = (GV *)sv_newmortal()Perl_sv_newmortal(); |
| 1839 | gv_init_pvn(gv, gv_stashpvs("XS::Typemap",1),"__ANONIO__",10,0)Perl_gv_init_pvn( gv,Perl_gv_stashpvn( ("" "XS::Typemap" ""), (sizeof("XS::Typemap")-1), 1),"__ANONIO__",10,0); |
| 1840 | if ( do_open(gv, "+<&", 3, FALSE, 0, 0, RETVAL)Perl_do_openn( gv,"+<&",3,(0),0,0,RETVAL,(SV **) ((void *)0),0) ) { |
| 1841 | SV *rv = newRV_inc((SV*)gv)Perl_newRV( (SV*)gv); |
| 1842 | rv = sv_bless(rv, GvSTASH(gv))Perl_sv_bless( rv,(((XPVGV*)(gv)->sv_any)->xnv_u.xgv_stash )); |
| 1843 | RETVALSV = sv_2mortal(rv)Perl_sv_2mortal( rv); |
| 1844 | } |
| 1845 | } |
| 1846 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 1847 | } |
| 1848 | } |
| 1849 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1850 | } |
| 1851 | |
| 1852 | |
| 1853 | XS_EUPXS(XS_XS__Typemap_T_IN)static void XS_XS__Typemap_T_IN( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1854 | XS_EUPXS(XS_XS__Typemap_T_IN)static void XS_XS__Typemap_T_IN( CV* cv __attribute__((unused ))) |
| 1855 | { |
| 1856 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1857 | if (items != 1) |
| 1858 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1859 | { |
| 1860 | inputfh in = IoIFP(sv_2io(ST(0)))(Perl_sv_2io( PL_stack_base[ax + (0)]))->sv_u.svu_fp |
| 1861 | ; |
| 1862 | inputfh RETVAL; |
| 1863 | #line 961 "Typemap.xs" |
| 1864 | RETVAL = in; /* silly test but better than nothing */ |
| 1865 | #line 1866 "Typemap.c" |
| 1866 | { |
| 1867 | SV * RETVALSV; |
| 1868 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 1869 | { |
| 1870 | GV *gv = (GV *)sv_newmortal()Perl_sv_newmortal(); |
| 1871 | gv_init_pvn(gv, gv_stashpvs("XS::Typemap",1),"__ANONIO__",10,0)Perl_gv_init_pvn( gv,Perl_gv_stashpvn( ("" "XS::Typemap" ""), (sizeof("XS::Typemap")-1), 1),"__ANONIO__",10,0); |
| 1872 | if ( do_open(gv, "<&", 2, FALSE, 0, 0, RETVAL)Perl_do_openn( gv,"<&",2,(0),0,0,RETVAL,(SV **) ((void *)0),0) ) { |
| 1873 | SV *rv = newRV_inc((SV*)gv)Perl_newRV( (SV*)gv); |
| 1874 | rv = sv_bless(rv, GvSTASH(gv))Perl_sv_bless( rv,(((XPVGV*)(gv)->sv_any)->xnv_u.xgv_stash )); |
| 1875 | RETVALSV = sv_2mortal(rv)Perl_sv_2mortal( rv); |
| 1876 | } |
| 1877 | } |
| 1878 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 1879 | } |
| 1880 | } |
| 1881 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1882 | } |
| 1883 | |
| 1884 | |
| 1885 | XS_EUPXS(XS_XS__Typemap_T_OUT)static void XS_XS__Typemap_T_OUT( CV* cv __attribute__((unused ))); /* prototype to pass -Wmissing-prototypes */ |
| 1886 | XS_EUPXS(XS_XS__Typemap_T_OUT)static void XS_XS__Typemap_T_OUT( CV* cv __attribute__((unused ))) |
| 1887 | { |
| 1888 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1889 | if (items != 1) |
| 1890 | croak_xs_usagePerl_croak_xs_usage(cv, "in"); |
| 1891 | { |
| 1892 | outputfh in = IoOFP(sv_2io(ST(0)))((XPVIO*) (Perl_sv_2io( PL_stack_base[ax + (0)]))->sv_any) ->xio_ofp |
| 1893 | ; |
| 1894 | outputfh RETVAL; |
| 1895 | #line 971 "Typemap.xs" |
| 1896 | RETVAL = in; /* silly test but better than nothing */ |
| 1897 | #line 1898 "Typemap.c" |
| 1898 | { |
| 1899 | SV * RETVALSV; |
| 1900 | RETVALSV = sv_newmortal()Perl_sv_newmortal(); |
| 1901 | { |
| 1902 | GV *gv = (GV *)sv_newmortal()Perl_sv_newmortal(); |
| 1903 | gv_init_pvn(gv, gv_stashpvs("XS::Typemap",1),"__ANONIO__",10,0)Perl_gv_init_pvn( gv,Perl_gv_stashpvn( ("" "XS::Typemap" ""), (sizeof("XS::Typemap")-1), 1),"__ANONIO__",10,0); |
| 1904 | if ( do_open(gv, "+>&", 3, FALSE, 0, 0, RETVAL)Perl_do_openn( gv,"+>&",3,(0),0,0,RETVAL,(SV **) ((void *)0),0) ) { |
| 1905 | SV *rv = newRV_inc((SV*)gv)Perl_newRV( (SV*)gv); |
| 1906 | rv = sv_bless(rv, GvSTASH(gv))Perl_sv_bless( rv,(((XPVGV*)(gv)->sv_any)->xnv_u.xgv_stash )); |
| 1907 | RETVALSV = sv_2mortal(rv)Perl_sv_2mortal( rv); |
| 1908 | } |
| 1909 | } |
| 1910 | ST(0)PL_stack_base[ax + (0)] = RETVALSV; |
| 1911 | } |
| 1912 | } |
| 1913 | XSRETURN(1)do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); |
| 1914 | } |
| 1915 | |
| 1916 | #ifdef __cplusplus |
| 1917 | extern "C" |
| 1918 | #endif |
| 1919 | XS_EXTERNAL(boot_XS__Typemap)void boot_XS__Typemap( CV* cv __attribute__((unused))); /* prototype to pass -Wmissing-prototypes */ |
| 1920 | XS_EXTERNAL(boot_XS__Typemap)void boot_XS__Typemap( CV* cv __attribute__((unused))) |
| 1921 | { |
| 1922 | #if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5)) |
| 1923 | dVARstruct Perl___notused_struct; dXSARGSSV **sp = PL_stack_sp; I32 ax = Perl_POPMARK(); SV **mark = PL_stack_base + ax++; I32 items = (I32)(sp - mark); |
| 1924 | #else |
| 1925 | dVARstruct Perl___notused_struct; dXSBOOTARGSXSAPIVERCHKI32 ax = Perl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter )) << 16) | ((sizeof("" "0.17" "")-1) > 0xFF ? (Perl_croak ("panic: handshake overflow"), 0xFF) : (sizeof("" "0.17" "")- 1) << 8) | ((((1)) ? (_Bool)1 : (_Bool)0) ? 0x00000020 : 0) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | (((( 1)) ? (_Bool)1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" "v" "5" "." "32" "." "0" "")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow" ), 0x0000001F) : (sizeof("" "v" "5" "." "32" "." "0" "")-1))) , cv, "Typemap.c", "v" "5" "." "32" "." "0", "0.17"); SV **mark = PL_stack_base + ax; SV **sp = PL_stack_sp; I32 items = (I32 )(sp - mark); |
| 1926 | #endif |
| 1927 | #if (PERL_REVISION5 == 5 && PERL_VERSION32 < 9) |
| 1928 | char* file = __FILE__"Typemap.c"; |
| 1929 | #else |
| 1930 | const char* file = __FILE__"Typemap.c"; |
| 1931 | #endif |
| 1932 | |
| 1933 | PERL_UNUSED_VAR(file)((void)sizeof(file)); |
| 1934 | |
| 1935 | PERL_UNUSED_VAR(cv)((void)sizeof(cv)); /* -W */ |
| 1936 | PERL_UNUSED_VAR(items)((void)sizeof(items)); /* -W */ |
| 1937 | #if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5)) |
| 1938 | XS_VERSION_BOOTCHECKPerl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter)) << 16) | ((sizeof("" "0.17" "")-1) > 0xFF ? (Perl_croak ("panic: handshake overflow"), 0xFF) : (sizeof("" "0.17" "")- 1) << 8) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000020 : 0) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | (((( 0)) ? (_Bool)1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" "" "")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow" ), 0x0000001F) : (sizeof("" "" "")-1))), cv, "Typemap.c", items , ax, "0.17"); |
| 1939 | # ifdef XS_APIVERSION_BOOTCHECKPerl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter)) << 16) | ((sizeof("" "" "")-1) > 0xFF ? (Perl_croak ("panic: handshake overflow"), 0xFF) : (sizeof("" "" "")-1) << 8) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000020 : 0) | (((( 0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | ((((0)) ? (_Bool )1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" "v" "5" "." "32" "." "0" "")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow" ), 0x0000001F) : (sizeof("" "v" "5" "." "32" "." "0" "")-1))) , cv, "Typemap.c", items, ax, "v" "5" "." "32" "." "0") |
| 1940 | XS_APIVERSION_BOOTCHECKPerl_xs_handshake((((sizeof(struct PerlHandShakeInterpreter)) << 16) | ((sizeof("" "" "")-1) > 0xFF ? (Perl_croak ("panic: handshake overflow"), 0xFF) : (sizeof("" "" "")-1) << 8) | ((((0)) ? (_Bool)1 : (_Bool)0) ? 0x00000020 : 0) | (((( 0)) ? (_Bool)1 : (_Bool)0) ? 0x00000080 : 0) | ((((0)) ? (_Bool )1 : (_Bool)0) ? 0x00000040 : 0) | ((sizeof("" "v" "5" "." "32" "." "0" "")-1) > 0x0000001F ? (Perl_croak("panic: handshake overflow" ), 0x0000001F) : (sizeof("" "v" "5" "." "32" "." "0" "")-1))) , cv, "Typemap.c", items, ax, "v" "5" "." "32" "." "0"); |
| 1941 | # endif |
| 1942 | #endif |
| 1943 | |
| 1944 | newXS_deffile("XS::Typemap::T_SV", XS_XS__Typemap_T_SV)Perl_newXS_deffile( "XS::Typemap::T_SV",XS_XS__Typemap_T_SV); |
| 1945 | newXS_deffile("XS::Typemap::T_SVREF", XS_XS__Typemap_T_SVREF)Perl_newXS_deffile( "XS::Typemap::T_SVREF",XS_XS__Typemap_T_SVREF ); |
| 1946 | newXS_deffile("XS::Typemap::T_SVREF_REFCOUNT_FIXED", XS_XS__Typemap_T_SVREF_REFCOUNT_FIXED)Perl_newXS_deffile( "XS::Typemap::T_SVREF_REFCOUNT_FIXED",XS_XS__Typemap_T_SVREF_REFCOUNT_FIXED ); |
| 1947 | newXS_deffile("XS::Typemap::T_AVREF", XS_XS__Typemap_T_AVREF)Perl_newXS_deffile( "XS::Typemap::T_AVREF",XS_XS__Typemap_T_AVREF ); |
| 1948 | newXS_deffile("XS::Typemap::T_AVREF_REFCOUNT_FIXED", XS_XS__Typemap_T_AVREF_REFCOUNT_FIXED)Perl_newXS_deffile( "XS::Typemap::T_AVREF_REFCOUNT_FIXED",XS_XS__Typemap_T_AVREF_REFCOUNT_FIXED ); |
| 1949 | newXS_deffile("XS::Typemap::T_HVREF", XS_XS__Typemap_T_HVREF)Perl_newXS_deffile( "XS::Typemap::T_HVREF",XS_XS__Typemap_T_HVREF ); |
| 1950 | newXS_deffile("XS::Typemap::T_HVREF_REFCOUNT_FIXED", XS_XS__Typemap_T_HVREF_REFCOUNT_FIXED)Perl_newXS_deffile( "XS::Typemap::T_HVREF_REFCOUNT_FIXED",XS_XS__Typemap_T_HVREF_REFCOUNT_FIXED ); |
| 1951 | newXS_deffile("XS::Typemap::T_CVREF", XS_XS__Typemap_T_CVREF)Perl_newXS_deffile( "XS::Typemap::T_CVREF",XS_XS__Typemap_T_CVREF ); |
| 1952 | newXS_deffile("XS::Typemap::T_CVREF_REFCOUNT_FIXED", XS_XS__Typemap_T_CVREF_REFCOUNT_FIXED)Perl_newXS_deffile( "XS::Typemap::T_CVREF_REFCOUNT_FIXED",XS_XS__Typemap_T_CVREF_REFCOUNT_FIXED ); |
| 1953 | newXS_deffile("XS::Typemap::T_SYSRET_pass", XS_XS__Typemap_T_SYSRET_pass)Perl_newXS_deffile( "XS::Typemap::T_SYSRET_pass",XS_XS__Typemap_T_SYSRET_pass ); |
| 1954 | newXS_deffile("XS::Typemap::T_SYSRET_fail", XS_XS__Typemap_T_SYSRET_fail)Perl_newXS_deffile( "XS::Typemap::T_SYSRET_fail",XS_XS__Typemap_T_SYSRET_fail ); |
| 1955 | newXS_deffile("XS::Typemap::T_UV", XS_XS__Typemap_T_UV)Perl_newXS_deffile( "XS::Typemap::T_UV",XS_XS__Typemap_T_UV); |
| 1956 | newXS_deffile("XS::Typemap::T_IV", XS_XS__Typemap_T_IV)Perl_newXS_deffile( "XS::Typemap::T_IV",XS_XS__Typemap_T_IV); |
| 1957 | newXS_deffile("XS::Typemap::T_INT", XS_XS__Typemap_T_INT)Perl_newXS_deffile( "XS::Typemap::T_INT",XS_XS__Typemap_T_INT ); |
| 1958 | newXS_deffile("XS::Typemap::T_ENUM", XS_XS__Typemap_T_ENUM)Perl_newXS_deffile( "XS::Typemap::T_ENUM",XS_XS__Typemap_T_ENUM ); |
| 1959 | newXS_deffile("XS::Typemap::T_BOOL", XS_XS__Typemap_T_BOOL)Perl_newXS_deffile( "XS::Typemap::T_BOOL",XS_XS__Typemap_T_BOOL ); |
| 1960 | newXS_deffile("XS::Typemap::T_BOOL_2", XS_XS__Typemap_T_BOOL_2)Perl_newXS_deffile( "XS::Typemap::T_BOOL_2",XS_XS__Typemap_T_BOOL_2 ); |
| 1961 | newXS_deffile("XS::Typemap::T_BOOL_OUT", XS_XS__Typemap_T_BOOL_OUT)Perl_newXS_deffile( "XS::Typemap::T_BOOL_OUT",XS_XS__Typemap_T_BOOL_OUT ); |
| 1962 | newXS_deffile("XS::Typemap::T_U_INT", XS_XS__Typemap_T_U_INT)Perl_newXS_deffile( "XS::Typemap::T_U_INT",XS_XS__Typemap_T_U_INT ); |
| 1963 | newXS_deffile("XS::Typemap::T_SHORT", XS_XS__Typemap_T_SHORT)Perl_newXS_deffile( "XS::Typemap::T_SHORT",XS_XS__Typemap_T_SHORT ); |
| 1964 | newXS_deffile("XS::Typemap::T_U_SHORT", XS_XS__Typemap_T_U_SHORT)Perl_newXS_deffile( "XS::Typemap::T_U_SHORT",XS_XS__Typemap_T_U_SHORT ); |
| 1965 | newXS_deffile("XS::Typemap::T_LONG", XS_XS__Typemap_T_LONG)Perl_newXS_deffile( "XS::Typemap::T_LONG",XS_XS__Typemap_T_LONG ); |
| 1966 | newXS_deffile("XS::Typemap::T_U_LONG", XS_XS__Typemap_T_U_LONG)Perl_newXS_deffile( "XS::Typemap::T_U_LONG",XS_XS__Typemap_T_U_LONG ); |
| 1967 | newXS_deffile("XS::Typemap::T_CHAR", XS_XS__Typemap_T_CHAR)Perl_newXS_deffile( "XS::Typemap::T_CHAR",XS_XS__Typemap_T_CHAR ); |
| 1968 | newXS_deffile("XS::Typemap::T_U_CHAR", XS_XS__Typemap_T_U_CHAR)Perl_newXS_deffile( "XS::Typemap::T_U_CHAR",XS_XS__Typemap_T_U_CHAR ); |
| 1969 | newXS_deffile("XS::Typemap::T_FLOAT", XS_XS__Typemap_T_FLOAT)Perl_newXS_deffile( "XS::Typemap::T_FLOAT",XS_XS__Typemap_T_FLOAT ); |
| 1970 | newXS_deffile("XS::Typemap::T_NV", XS_XS__Typemap_T_NV)Perl_newXS_deffile( "XS::Typemap::T_NV",XS_XS__Typemap_T_NV); |
| 1971 | newXS_deffile("XS::Typemap::T_DOUBLE", XS_XS__Typemap_T_DOUBLE)Perl_newXS_deffile( "XS::Typemap::T_DOUBLE",XS_XS__Typemap_T_DOUBLE ); |
| 1972 | newXS_deffile("XS::Typemap::T_PV", XS_XS__Typemap_T_PV)Perl_newXS_deffile( "XS::Typemap::T_PV",XS_XS__Typemap_T_PV); |
| 1973 | newXS_deffile("XS::Typemap::T_PV_null", XS_XS__Typemap_T_PV_null)Perl_newXS_deffile( "XS::Typemap::T_PV_null",XS_XS__Typemap_T_PV_null ); |
| 1974 | newXS_deffile("XS::Typemap::T_PTR_OUT", XS_XS__Typemap_T_PTR_OUT)Perl_newXS_deffile( "XS::Typemap::T_PTR_OUT",XS_XS__Typemap_T_PTR_OUT ); |
| 1975 | newXS_deffile("XS::Typemap::T_PTR_IN", XS_XS__Typemap_T_PTR_IN)Perl_newXS_deffile( "XS::Typemap::T_PTR_IN",XS_XS__Typemap_T_PTR_IN ); |
| 1976 | newXS_deffile("XS::Typemap::T_PTRREF_OUT", XS_XS__Typemap_T_PTRREF_OUT)Perl_newXS_deffile( "XS::Typemap::T_PTRREF_OUT",XS_XS__Typemap_T_PTRREF_OUT ); |
| 1977 | newXS_deffile("XS::Typemap::T_PTRREF_IN", XS_XS__Typemap_T_PTRREF_IN)Perl_newXS_deffile( "XS::Typemap::T_PTRREF_IN",XS_XS__Typemap_T_PTRREF_IN ); |
| 1978 | newXS_deffile("XS::Typemap::T_PTROBJ_OUT", XS_XS__Typemap_T_PTROBJ_OUT)Perl_newXS_deffile( "XS::Typemap::T_PTROBJ_OUT",XS_XS__Typemap_T_PTROBJ_OUT ); |
| 1979 | newXS_deffile("intObjPtr::T_PTROBJ_IN", XS_intObjPtr_T_PTROBJ_IN)Perl_newXS_deffile( "intObjPtr::T_PTROBJ_IN",XS_intObjPtr_T_PTROBJ_IN ); |
| 1980 | newXS_deffile("XS::Typemap::T_REF_IV_PTR_OUT", XS_XS__Typemap_T_REF_IV_PTR_OUT)Perl_newXS_deffile( "XS::Typemap::T_REF_IV_PTR_OUT",XS_XS__Typemap_T_REF_IV_PTR_OUT ); |
| 1981 | newXS_deffile("intRefIvPtr::T_REF_IV_PTR_IN", XS_intRefIvPtr_T_REF_IV_PTR_IN)Perl_newXS_deffile( "intRefIvPtr::T_REF_IV_PTR_IN",XS_intRefIvPtr_T_REF_IV_PTR_IN ); |
| 1982 | newXS_deffile("XS::Typemap::T_OPAQUEPTR_IN", XS_XS__Typemap_T_OPAQUEPTR_IN)Perl_newXS_deffile( "XS::Typemap::T_OPAQUEPTR_IN",XS_XS__Typemap_T_OPAQUEPTR_IN ); |
| 1983 | newXS_deffile("XS::Typemap::T_OPAQUEPTR_OUT", XS_XS__Typemap_T_OPAQUEPTR_OUT)Perl_newXS_deffile( "XS::Typemap::T_OPAQUEPTR_OUT",XS_XS__Typemap_T_OPAQUEPTR_OUT ); |
| 1984 | newXS_deffile("XS::Typemap::T_OPAQUEPTR_OUT_short", XS_XS__Typemap_T_OPAQUEPTR_OUT_short)Perl_newXS_deffile( "XS::Typemap::T_OPAQUEPTR_OUT_short",XS_XS__Typemap_T_OPAQUEPTR_OUT_short ); |
| 1985 | newXS_deffile("XS::Typemap::T_OPAQUEPTR_IN_struct", XS_XS__Typemap_T_OPAQUEPTR_IN_struct)Perl_newXS_deffile( "XS::Typemap::T_OPAQUEPTR_IN_struct",XS_XS__Typemap_T_OPAQUEPTR_IN_struct ); |
| 1986 | newXS_deffile("XS::Typemap::T_OPAQUEPTR_OUT_struct", XS_XS__Typemap_T_OPAQUEPTR_OUT_struct)Perl_newXS_deffile( "XS::Typemap::T_OPAQUEPTR_OUT_struct",XS_XS__Typemap_T_OPAQUEPTR_OUT_struct ); |
| 1987 | newXS_deffile("XS::Typemap::T_OPAQUE_IN", XS_XS__Typemap_T_OPAQUE_IN)Perl_newXS_deffile( "XS::Typemap::T_OPAQUE_IN",XS_XS__Typemap_T_OPAQUE_IN ); |
| 1988 | newXS_deffile("XS::Typemap::T_OPAQUE_OUT", XS_XS__Typemap_T_OPAQUE_OUT)Perl_newXS_deffile( "XS::Typemap::T_OPAQUE_OUT",XS_XS__Typemap_T_OPAQUE_OUT ); |
| 1989 | newXS_deffile("XS::Typemap::T_OPAQUE_array", XS_XS__Typemap_T_OPAQUE_array)Perl_newXS_deffile( "XS::Typemap::T_OPAQUE_array",XS_XS__Typemap_T_OPAQUE_array ); |
| 1990 | newXS_deffile("XS::Typemap::T_PACKED_in", XS_XS__Typemap_T_PACKED_in)Perl_newXS_deffile( "XS::Typemap::T_PACKED_in",XS_XS__Typemap_T_PACKED_in ); |
| 1991 | newXS_deffile("XS::Typemap::T_PACKED_out", XS_XS__Typemap_T_PACKED_out)Perl_newXS_deffile( "XS::Typemap::T_PACKED_out",XS_XS__Typemap_T_PACKED_out ); |
| 1992 | newXS_deffile("XS::Typemap::T_PACKEDARRAY_in", XS_XS__Typemap_T_PACKEDARRAY_in)Perl_newXS_deffile( "XS::Typemap::T_PACKEDARRAY_in",XS_XS__Typemap_T_PACKEDARRAY_in ); |
| 1993 | newXS_deffile("XS::Typemap::T_PACKEDARRAY_out", XS_XS__Typemap_T_PACKEDARRAY_out)Perl_newXS_deffile( "XS::Typemap::T_PACKEDARRAY_out",XS_XS__Typemap_T_PACKEDARRAY_out ); |
| 1994 | newXS_deffile("XS::Typemap::T_ARRAY", XS_XS__Typemap_T_ARRAY)Perl_newXS_deffile( "XS::Typemap::T_ARRAY",XS_XS__Typemap_T_ARRAY ); |
| 1995 | newXS_deffile("XS::Typemap::T_STDIO_open", XS_XS__Typemap_T_STDIO_open)Perl_newXS_deffile( "XS::Typemap::T_STDIO_open",XS_XS__Typemap_T_STDIO_open ); |
| 1996 | newXS_deffile("XS::Typemap::T_STDIO_open_ret_in_arg", XS_XS__Typemap_T_STDIO_open_ret_in_arg)Perl_newXS_deffile( "XS::Typemap::T_STDIO_open_ret_in_arg",XS_XS__Typemap_T_STDIO_open_ret_in_arg ); |
| 1997 | newXS_deffile("XS::Typemap::T_STDIO_close", XS_XS__Typemap_T_STDIO_close)Perl_newXS_deffile( "XS::Typemap::T_STDIO_close",XS_XS__Typemap_T_STDIO_close ); |
| 1998 | newXS_deffile("XS::Typemap::T_STDIO_print", XS_XS__Typemap_T_STDIO_print)Perl_newXS_deffile( "XS::Typemap::T_STDIO_print",XS_XS__Typemap_T_STDIO_print ); |
| 1999 | newXS_deffile("XS::Typemap::T_INOUT", XS_XS__Typemap_T_INOUT)Perl_newXS_deffile( "XS::Typemap::T_INOUT",XS_XS__Typemap_T_INOUT ); |
| 2000 | newXS_deffile("XS::Typemap::T_IN", XS_XS__Typemap_T_IN)Perl_newXS_deffile( "XS::Typemap::T_IN",XS_XS__Typemap_T_IN); |
| 2001 | newXS_deffile("XS::Typemap::T_OUT", XS_XS__Typemap_T_OUT)Perl_newXS_deffile( "XS::Typemap::T_OUT",XS_XS__Typemap_T_OUT ); |
| 2002 | #if PERL_VERSION_LE(5, 21, 5)((5*1000000 + 32*1000 + 1) <= (5*1000000 + 21*1000 + 5)) |
| 2003 | # if PERL_VERSION_GE(5, 9, 0)((5*1000000 + 32*1000 + 1) >= (5*1000000 + 9*1000 + 0)) |
| 2004 | if (PL_unitcheckav) |
| 2005 | call_list(PL_scopestack_ix, PL_unitcheckav)Perl_call_list( PL_scopestack_ix,PL_unitcheckav); |
| 2006 | # endif |
| 2007 | XSRETURN_YESdo { (PL_stack_base[ax + (0)] = &(PL_sv_immortals[0]) ); do { const IV tmpXSoff = (1); ((void)0); PL_stack_sp = PL_stack_base + ax + (tmpXSoff - 1); return; } while (0); } while (0); |
| 2008 | #else |
| 2009 | Perl_xs_boot_epilog(aTHX_ ax); |
| 2010 | #endif |
| 2011 | } |
| 2012 |