Bug Summary

File:src/mod/endpoints/mod_verto/mcast/mcast_wrap.cpp
Location:line 1086, column 3
Description:Null pointer passed as an argument to a 'nonnull' parameter

Annotated Source Code

1/* ----------------------------------------------------------------------------
2 * This file was automatically generated by SWIG (http://www.swig.org).
3 * Version 1.3.35
4 *
5 * This file is not intended to be easily readable and contains a number of
6 * coding conventions designed to improve portability and efficiency. Do not make
7 * changes to this file unless you know what you are doing--modify the SWIG
8 * interface file instead.
9 * ----------------------------------------------------------------------------- */
10
11#define SWIGPERL
12#define SWIG_CASTRANK_MODE
13
14#ifdef __cplusplus199711L
15template<typename T> class SwigValueWrapper {
16 T *tt;
17public:
18 SwigValueWrapper() : tt(0) { }
19 SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
20 SwigValueWrapper(const T& t) : tt(new T(t)) { }
21 ~SwigValueWrapper() { delete tt; }
22 SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
23 operator T&() const { return *tt; }
24 T *operator&() { return tt; }
25private:
26 SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
27};
28
29template <typename T> T SwigValueInit() {
30 return T();
31}
32#endif
33
34/* -----------------------------------------------------------------------------
35 * This section contains generic SWIG labels for method/variable
36 * declarations/attributes, and other compiler dependent labels.
37 * ----------------------------------------------------------------------------- */
38
39/* template workaround for compilers that cannot correctly implement the C++ standard */
40#ifndef SWIGTEMPLATEDISAMBIGUATOR
41# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
42# define SWIGTEMPLATEDISAMBIGUATOR template
43# elif defined(__HP_aCC)
44/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
45/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
46# define SWIGTEMPLATEDISAMBIGUATOR template
47# else
48# define SWIGTEMPLATEDISAMBIGUATOR
49# endif
50#endif
51
52/* inline attribute */
53#ifndef SWIGINLINEinline
54# if defined(__cplusplus199711L) || (defined(__GNUC__4) && !defined(__STRICT_ANSI__))
55# define SWIGINLINEinline inline
56# else
57# define SWIGINLINEinline
58# endif
59#endif
60
61/* attribute recognised by some compilers to avoid 'unused' warnings */
62#ifndef SWIGUNUSED__attribute__ ((__unused__))
63# if defined(__GNUC__4)
64# if !(defined(__cplusplus199711L)) || (__GNUC__4 > 3 || (__GNUC__4 == 3 && __GNUC_MINOR__2 >= 4))
65# define SWIGUNUSED__attribute__ ((__unused__)) __attribute__ ((__unused__))
66# else
67# define SWIGUNUSED__attribute__ ((__unused__))
68# endif
69# elif defined(__ICC)
70# define SWIGUNUSED__attribute__ ((__unused__)) __attribute__ ((__unused__))
71# else
72# define SWIGUNUSED__attribute__ ((__unused__))
73# endif
74#endif
75
76#ifndef SWIGUNUSEDPARM
77# ifdef __cplusplus199711L
78# define SWIGUNUSEDPARM(p)
79# else
80# define SWIGUNUSEDPARM(p) p SWIGUNUSED__attribute__ ((__unused__))
81# endif
82#endif
83
84/* internal SWIG method */
85#ifndef SWIGINTERNstatic __attribute__ ((__unused__))
86# define SWIGINTERNstatic __attribute__ ((__unused__)) static SWIGUNUSED__attribute__ ((__unused__))
87#endif
88
89/* internal inline SWIG method */
90#ifndef SWIGINTERNINLINEstatic __attribute__ ((__unused__)) inline
91# define SWIGINTERNINLINEstatic __attribute__ ((__unused__)) inline SWIGINTERNstatic __attribute__ ((__unused__)) SWIGINLINEinline
92#endif
93
94/* exporting methods */
95#if (__GNUC__4 >= 4) || (__GNUC__4 == 3 && __GNUC_MINOR__2 >= 4)
96# ifndef GCC_HASCLASSVISIBILITY
97# define GCC_HASCLASSVISIBILITY
98# endif
99#endif
100
101#ifndef SWIGEXPORT__attribute__ ((visibility("default")))
102# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
103# if defined(STATIC_LINKED)
104# define SWIGEXPORT__attribute__ ((visibility("default")))
105# else
106# define SWIGEXPORT__attribute__ ((visibility("default"))) __declspec(dllexport)
107# endif
108# else
109# if defined(__GNUC__4) && defined(GCC_HASCLASSVISIBILITY)
110# define SWIGEXPORT__attribute__ ((visibility("default"))) __attribute__ ((visibility("default")))
111# else
112# define SWIGEXPORT__attribute__ ((visibility("default")))
113# endif
114# endif
115#endif
116
117/* calling conventions for Windows */
118#ifndef SWIGSTDCALL
119# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
120# define SWIGSTDCALL __stdcall
121# else
122# define SWIGSTDCALL
123# endif
124#endif
125
126/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
127#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
128# define _CRT_SECURE_NO_DEPRECATE
129#endif
130
131/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
132#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
133# define _SCL_SECURE_NO_DEPRECATE
134#endif
135
136
137/* -----------------------------------------------------------------------------
138 * swigrun.swg
139 *
140 * This file contains generic CAPI SWIG runtime support for pointer
141 * type checking.
142 * ----------------------------------------------------------------------------- */
143
144/* This should only be incremented when either the layout of swig_type_info changes,
145 or for whatever reason, the runtime changes incompatibly */
146#define SWIG_RUNTIME_VERSION"4" "4"
147
148/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
149#ifdef SWIG_TYPE_TABLE
150# define SWIG_QUOTE_STRING(x) #x
151# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
152# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
153#else
154# define SWIG_TYPE_TABLE_NAME
155#endif
156
157/*
158 You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
159 creating a static or dynamic library from the swig runtime code.
160 In 99.9% of the cases, swig just needs to declare them as 'static'.
161
162 But only do this if is strictly necessary, ie, if you have problems
163 with your compiler or so.
164*/
165
166#ifndef SWIGRUNTIMEstatic __attribute__ ((__unused__))
167# define SWIGRUNTIMEstatic __attribute__ ((__unused__)) SWIGINTERNstatic __attribute__ ((__unused__))
168#endif
169
170#ifndef SWIGRUNTIMEINLINEstatic __attribute__ ((__unused__)) inline
171# define SWIGRUNTIMEINLINEstatic __attribute__ ((__unused__)) inline SWIGRUNTIMEstatic __attribute__ ((__unused__)) SWIGINLINEinline
172#endif
173
174/* Generic buffer size */
175#ifndef SWIG_BUFFER_SIZE1024
176# define SWIG_BUFFER_SIZE1024 1024
177#endif
178
179/* Flags for pointer conversions */
180#define SWIG_POINTER_DISOWN0x1 0x1
181#define SWIG_CAST_NEW_MEMORY0x2 0x2
182
183/* Flags for new pointer objects */
184#define SWIG_POINTER_OWN0x1 0x1
185
186
187/*
188 Flags/methods for returning states.
189
190 The swig conversion methods, as ConvertPtr, return and integer
191 that tells if the conversion was successful or not. And if not,
192 an error code can be returned (see swigerrors.swg for the codes).
193
194 Use the following macros/flags to set or process the returning
195 states.
196
197 In old swig versions, you usually write code as:
198
199 if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
200 // success code
201 } else {
202 //fail code
203 }
204
205 Now you can be more explicit as:
206
207 int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
208 if (SWIG_IsOK(res)) {
209 // success code
210 } else {
211 // fail code
212 }
213
214 that seems to be the same, but now you can also do
215
216 Type *ptr;
217 int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
218 if (SWIG_IsOK(res)) {
219 // success code
220 if (SWIG_IsNewObj(res) {
221 ...
222 delete *ptr;
223 } else {
224 ...
225 }
226 } else {
227 // fail code
228 }
229
230 I.e., now SWIG_ConvertPtr can return new objects and you can
231 identify the case and take care of the deallocation. Of course that
232 requires also to SWIG_ConvertPtr to return new result values, as
233
234 int SWIG_ConvertPtr(obj, ptr,...) {
235 if (<obj is ok>) {
236 if (<need new object>) {
237 *ptr = <ptr to new allocated object>;
238 return SWIG_NEWOBJ;
239 } else {
240 *ptr = <ptr to old object>;
241 return SWIG_OLDOBJ;
242 }
243 } else {
244 return SWIG_BADOBJ;
245 }
246 }
247
248 Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
249 more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
250 swig errors code.
251
252 Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
253 allows to return the 'cast rank', for example, if you have this
254
255 int food(double)
256 int fooi(int);
257
258 and you call
259
260 food(1) // cast rank '1' (1 -> 1.0)
261 fooi(1) // cast rank '0'
262
263 just use the SWIG_AddCast()/SWIG_CheckState()
264
265
266 */
267#define SWIG_OK(0) (0)
268#define SWIG_ERROR(-1) (-1)
269#define SWIG_IsOK(r)(r >= 0) (r >= 0)
270#define SWIG_ArgError(r)((r != (-1)) ? r : -5) ((r != SWIG_ERROR(-1)) ? r : SWIG_TypeError-5)
271
272/* The CastRankLimit says how many bits are used for the cast rank */
273#define SWIG_CASTRANKLIMIT(1 << 8) (1 << 8)
274/* The NewMask denotes the object was created (using new/malloc) */
275#define SWIG_NEWOBJMASK((1 << 8) << 1) (SWIG_CASTRANKLIMIT(1 << 8) << 1)
276/* The TmpMask is for in/out typemaps that use temporal objects */
277#define SWIG_TMPOBJMASK(((1 << 8) << 1) << 1) (SWIG_NEWOBJMASK((1 << 8) << 1) << 1)
278/* Simple returning values */
279#define SWIG_BADOBJ((-1)) (SWIG_ERROR(-1))
280#define SWIG_OLDOBJ((0)) (SWIG_OK(0))
281#define SWIG_NEWOBJ((0) | ((1 << 8) << 1)) (SWIG_OK(0) | SWIG_NEWOBJMASK((1 << 8) << 1))
282#define SWIG_TMPOBJ((0) | (((1 << 8) << 1) << 1)) (SWIG_OK(0) | SWIG_TMPOBJMASK(((1 << 8) << 1) << 1))
283/* Check, add and del mask methods */
284#define SWIG_AddNewMask(r)((r >= 0) ? (r | ((1 << 8) << 1)) : r) (SWIG_IsOK(r)(r >= 0) ? (r | SWIG_NEWOBJMASK((1 << 8) << 1)) : r)
285#define SWIG_DelNewMask(r)((r >= 0) ? (r & ~((1 << 8) << 1)) : r) (SWIG_IsOK(r)(r >= 0) ? (r & ~SWIG_NEWOBJMASK((1 << 8) << 1)) : r)
286#define SWIG_IsNewObj(r)((r >= 0) && (r & ((1 << 8) << 1))
)
(SWIG_IsOK(r)(r >= 0) && (r & SWIG_NEWOBJMASK((1 << 8) << 1)))
287#define SWIG_AddTmpMask(r)((r >= 0) ? (r | (((1 << 8) << 1) << 1))
: r)
(SWIG_IsOK(r)(r >= 0) ? (r | SWIG_TMPOBJMASK(((1 << 8) << 1) << 1)) : r)
288#define SWIG_DelTmpMask(r)((r >= 0) ? (r & ~(((1 << 8) << 1) <<
1)) : r)
(SWIG_IsOK(r)(r >= 0) ? (r & ~SWIG_TMPOBJMASK(((1 << 8) << 1) << 1)) : r)
289#define SWIG_IsTmpObj(r)((r >= 0) && (r & (((1 << 8) << 1)
<< 1)))
(SWIG_IsOK(r)(r >= 0) && (r & SWIG_TMPOBJMASK(((1 << 8) << 1) << 1)))
290
291
292/* Cast-Rank Mode */
293#if defined(SWIG_CASTRANK_MODE)
294# ifndef SWIG_TypeRankunsigned long
295# define SWIG_TypeRankunsigned long unsigned long
296# endif
297# ifndef SWIG_MAXCASTRANK(2) /* Default cast allowed */
298# define SWIG_MAXCASTRANK(2) (2)
299# endif
300# define SWIG_CASTRANKMASK(((1 << 8)) -1) ((SWIG_CASTRANKLIMIT(1 << 8)) -1)
301# define SWIG_CastRank(r)(r & (((1 << 8)) -1)) (r & SWIG_CASTRANKMASK(((1 << 8)) -1))
302SWIGINTERNINLINEstatic __attribute__ ((__unused__)) inline int SWIG_AddCast(int r) {
303 return SWIG_IsOK(r)(r >= 0) ? ((SWIG_CastRank(r)(r & (((1 << 8)) -1)) < SWIG_MAXCASTRANK(2)) ? (r + 1) : SWIG_ERROR(-1)) : r;
304}
305SWIGINTERNINLINEstatic __attribute__ ((__unused__)) inline int SWIG_CheckState(int r) {
306 return SWIG_IsOK(r)(r >= 0) ? SWIG_CastRank(r)(r & (((1 << 8)) -1)) + 1 : 0;
307}
308#else /* no cast-rank mode */
309# define SWIG_AddCast
310# define SWIG_CheckState(r) (SWIG_IsOK(r)(r >= 0) ? 1 : 0)
311#endif
312
313
314
315
316#include <string.h>
317
318#ifdef __cplusplus199711L
319extern "C" {
320#endif
321
322typedef void *(*swig_converter_func)(void *, int *);
323typedef struct swig_type_info *(*swig_dycast_func)(void **);
324
325/* Structure to store information on one type */
326typedef struct swig_type_info {
327 const char *name; /* mangled name of this type */
328 const char *str; /* human readable name of this type */
329 swig_dycast_func dcast; /* dynamic cast function down a hierarchy */
330 struct swig_cast_info *cast; /* linked list of types that can cast into this type */
331 void *clientdata; /* language specific type data */
332 int owndata; /* flag if the structure owns the clientdata */
333} swig_type_info;
334
335/* Structure to store a type and conversion function used for casting */
336typedef struct swig_cast_info {
337 swig_type_info *type; /* pointer to type that is equivalent to this type */
338 swig_converter_func converter; /* function to cast the void pointers */
339 struct swig_cast_info *next; /* pointer to next cast in linked list */
340 struct swig_cast_info *prev; /* pointer to the previous cast */
341} swig_cast_info;
342
343/* Structure used to store module information
344 * Each module generates one structure like this, and the runtime collects
345 * all of these structures and stores them in a circularly linked list.*/
346typedef struct swig_module_info {
347 swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */
348 size_t size; /* Number of types in this module */
349 struct swig_module_info *next; /* Pointer to next element in circularly linked list */
350 swig_type_info **type_initial; /* Array of initially generated type structures */
351 swig_cast_info **cast_initial; /* Array of initially generated casting structures */
352 void *clientdata; /* Language specific module data */
353} swig_module_info;
354
355/*
356 Compare two type names skipping the space characters, therefore
357 "char*" == "char *" and "Class<int>" == "Class<int >", etc.
358
359 Return 0 when the two name types are equivalent, as in
360 strncmp, but skipping ' '.
361*/
362SWIGRUNTIMEstatic __attribute__ ((__unused__)) int
363SWIG_TypeNameComp(const char *f1, const char *l1,
364 const char *f2, const char *l2) {
365 for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
366 while ((*f1 == ' ') && (f1 != l1)) ++f1;
367 while ((*f2 == ' ') && (f2 != l2)) ++f2;
368 if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
369 }
370 return (int)((l1 - f1) - (l2 - f2));
371}
372
373/*
374 Check type equivalence in a name list like <name1>|<name2>|...
375 Return 0 if not equal, 1 if equal
376*/
377SWIGRUNTIMEstatic __attribute__ ((__unused__)) int
378SWIG_TypeEquiv(const char *nb, const char *tb) {
379 int equiv = 0;
380 const char* te = tb + strlen(tb);
381 const char* ne = nb;
382 while (!equiv && *ne) {
383 for (nb = ne; *ne; ++ne) {
384 if (*ne == '|') break;
385 }
386 equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
387 if (*ne) ++ne;
388 }
389 return equiv;
390}
391
392/*
393 Check type equivalence in a name list like <name1>|<name2>|...
394 Return 0 if equal, -1 if nb < tb, 1 if nb > tb
395*/
396SWIGRUNTIMEstatic __attribute__ ((__unused__)) int
397SWIG_TypeCompare(const char *nb, const char *tb) {
398 int equiv = 0;
399 const char* te = tb + strlen(tb);
400 const char* ne = nb;
401 while (!equiv && *ne) {
402 for (nb = ne; *ne; ++ne) {
403 if (*ne == '|') break;
404 }
405 equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
406 if (*ne) ++ne;
407 }
408 return equiv;
409}
410
411
412/* think of this as a c++ template<> or a scheme macro */
413#define SWIG_TypeCheck_Template(comparison, ty)if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if
(comparison) { if (iter == ty->cast) return iter; iter->
prev->next = iter->next; if (iter->next) iter->next
->prev = iter->prev; iter->next = ty->cast; iter->
prev = 0; if (ty->cast) ty->cast->prev = iter; ty->
cast = iter; return iter; } iter = iter->next; } } return 0
\
414 if (ty) { \
415 swig_cast_info *iter = ty->cast; \
416 while (iter) { \
417 if (comparison) { \
418 if (iter == ty->cast) return iter; \
419 /* Move iter to the top of the linked list */ \
420 iter->prev->next = iter->next; \
421 if (iter->next) \
422 iter->next->prev = iter->prev; \
423 iter->next = ty->cast; \
424 iter->prev = 0; \
425 if (ty->cast) ty->cast->prev = iter; \
426 ty->cast = iter; \
427 return iter; \
428 } \
429 iter = iter->next; \
430 } \
431 } \
432 return 0
433
434/*
435 Check the typename
436*/
437SWIGRUNTIMEstatic __attribute__ ((__unused__)) swig_cast_info *
438SWIG_TypeCheck(const char *c, swig_type_info *ty) {
439 SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty)if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if
(strcmp(iter->type->name, c) == 0) { if (iter == ty->
cast) return iter; iter->prev->next = iter->next; if
(iter->next) iter->next->prev = iter->prev; iter
->next = ty->cast; iter->prev = 0; if (ty->cast) ty
->cast->prev = iter; ty->cast = iter; return iter; }
iter = iter->next; } } return 0
;
440}
441
442/* Same as previous function, except strcmp is replaced with a pointer comparison */
443SWIGRUNTIMEstatic __attribute__ ((__unused__)) swig_cast_info *
444SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
445 SWIG_TypeCheck_Template(iter->type == from, into)if (into) { swig_cast_info *iter = into->cast; while (iter
) { if (iter->type == from) { if (iter == into->cast) return
iter; iter->prev->next = iter->next; if (iter->next
) iter->next->prev = iter->prev; iter->next = into
->cast; iter->prev = 0; if (into->cast) into->cast
->prev = iter; into->cast = iter; return iter; } iter =
iter->next; } } return 0
;
446}
447
448/*
449 Cast a pointer up an inheritance hierarchy
450*/
451SWIGRUNTIMEINLINEstatic __attribute__ ((__unused__)) inline void *
452SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
453 return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
454}
455
456/*
457 Dynamic pointer casting. Down an inheritance hierarchy
458*/
459SWIGRUNTIMEstatic __attribute__ ((__unused__)) swig_type_info *
460SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
461 swig_type_info *lastty = ty;
462 if (!ty || !ty->dcast) return ty;
463 while (ty && (ty->dcast)) {
464 ty = (*ty->dcast)(ptr);
465 if (ty) lastty = ty;
466 }
467 return lastty;
468}
469
470/*
471 Return the name associated with this type
472*/
473SWIGRUNTIMEINLINEstatic __attribute__ ((__unused__)) inline const char *
474SWIG_TypeName(const swig_type_info *ty) {
475 return ty->name;
476}
477
478/*
479 Return the pretty name associated with this type,
480 that is an unmangled type name in a form presentable to the user.
481*/
482SWIGRUNTIMEstatic __attribute__ ((__unused__)) const char *
483SWIG_TypePrettyName(const swig_type_info *type) {
484 /* The "str" field contains the equivalent pretty names of the
485 type, separated by vertical-bar characters. We choose
486 to print the last name, as it is often (?) the most
487 specific. */
488 if (!type) return NULL__null;
489 if (type->str != NULL__null) {
490 const char *last_name = type->str;
491 const char *s;
492 for (s = type->str; *s; s++)
493 if (*s == '|') last_name = s+1;
494 return last_name;
495 }
496 else
497 return type->name;
498}
499
500/*
501 Set the clientdata field for a type
502*/
503SWIGRUNTIMEstatic __attribute__ ((__unused__)) void
504SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
505 swig_cast_info *cast = ti->cast;
506 /* if (ti->clientdata == clientdata) return; */
507 ti->clientdata = clientdata;
508
509 while (cast) {
510 if (!cast->converter) {
511 swig_type_info *tc = cast->type;
512 if (!tc->clientdata) {
513 SWIG_TypeClientData(tc, clientdata);
514 }
515 }
516 cast = cast->next;
517 }
518}
519SWIGRUNTIMEstatic __attribute__ ((__unused__)) void
520SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
521 SWIG_TypeClientData(ti, clientdata);
522 ti->owndata = 1;
523}
524
525/*
526 Search for a swig_type_info structure only by mangled name
527 Search is a O(log #types)
528
529 We start searching at module start, and finish searching when start == end.
530 Note: if start == end at the beginning of the function, we go all the way around
531 the circular list.
532*/
533SWIGRUNTIMEstatic __attribute__ ((__unused__)) swig_type_info *
534SWIG_MangledTypeQueryModule(swig_module_info *start,
535 swig_module_info *end,
536 const char *name) {
537 swig_module_info *iter = start;
538 do {
539 if (iter->size) {
540 register size_t l = 0;
541 register size_t r = iter->size - 1;
542 do {
543 /* since l+r >= 0, we can (>> 1) instead (/ 2) */
544 register size_t i = (l + r) >> 1;
545 const char *iname = iter->types[i]->name;
546 if (iname) {
547 register int compare = strcmp(name, iname);
548 if (compare == 0) {
549 return iter->types[i];
550 } else if (compare < 0) {
551 if (i) {
552 r = i - 1;
553 } else {
554 break;
555 }
556 } else if (compare > 0) {
557 l = i + 1;
558 }
559 } else {
560 break; /* should never happen */
561 }
562 } while (l <= r);
563 }
564 iter = iter->next;
565 } while (iter != end);
566 return 0;
567}
568
569/*
570 Search for a swig_type_info structure for either a mangled name or a human readable name.
571 It first searches the mangled names of the types, which is a O(log #types)
572 If a type is not found it then searches the human readable names, which is O(#types).
573
574 We start searching at module start, and finish searching when start == end.
575 Note: if start == end at the beginning of the function, we go all the way around
576 the circular list.
577*/
578SWIGRUNTIMEstatic __attribute__ ((__unused__)) swig_type_info *
579SWIG_TypeQueryModule(swig_module_info *start,
580 swig_module_info *end,
581 const char *name) {
582 /* STEP 1: Search the name field using binary search */
583 swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
584 if (ret) {
585 return ret;
586 } else {
587 /* STEP 2: If the type hasn't been found, do a complete search
588 of the str field (the human readable name) */
589 swig_module_info *iter = start;
590 do {
591 register size_t i = 0;
592 for (; i < iter->size; ++i) {
593 if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
594 return iter->types[i];
595 }
596 iter = iter->next;
597 } while (iter != end);
598 }
599
600 /* neither found a match */
601 return 0;
602}
603
604/*
605 Pack binary data into a string
606*/
607SWIGRUNTIMEstatic __attribute__ ((__unused__)) char *
608SWIG_PackData(char *c, void *ptr, size_t sz) {
609 static const char hex[17] = "0123456789abcdef";
610 register const unsigned char *u = (unsigned char *) ptr;
611 register const unsigned char *eu = u + sz;
612 for (; u != eu; ++u) {
613 register unsigned char uu = *u;
614 *(c++) = hex[(uu & 0xf0) >> 4];
615 *(c++) = hex[uu & 0xf];
616 }
617 return c;
618}
619
620/*
621 Unpack binary data from a string
622*/
623SWIGRUNTIMEstatic __attribute__ ((__unused__)) const char *
624SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
625 register unsigned char *u = (unsigned char *) ptr;
626 register const unsigned char *eu = u + sz;
627 for (; u != eu; ++u) {
628 register char d = *(c++);
629 register unsigned char uu;
630 if ((d >= '0') && (d <= '9'))
631 uu = ((d - '0') << 4);
632 else if ((d >= 'a') && (d <= 'f'))
633 uu = ((d - ('a'-10)) << 4);
634 else
635 return (char *) 0;
636 d = *(c++);
637 if ((d >= '0') && (d <= '9'))
638 uu |= (d - '0');
639 else if ((d >= 'a') && (d <= 'f'))
640 uu |= (d - ('a'-10));
641 else
642 return (char *) 0;
643 *u = uu;
644 }
645 return c;
646}
647
648/*
649 Pack 'void *' into a string buffer.
650*/
651SWIGRUNTIMEstatic __attribute__ ((__unused__)) char *
652SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
653 char *r = buff;
654 if ((2*sizeof(void *) + 2) > bsz) return 0;
655 *(r++) = '_';
656 r = SWIG_PackData(r,&ptr,sizeof(void *));
657 if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
658 strcpy(r,name);
659 return buff;
660}
661
662SWIGRUNTIMEstatic __attribute__ ((__unused__)) const char *
663SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
664 if (*c != '_') {
665 if (strcmp(c,"NULL") == 0) {
666 *ptr = (void *) 0;
667 return name;
668 } else {
669 return 0;
670 }
671 }
672 return SWIG_UnpackData(++c,ptr,sizeof(void *));
673}
674
675SWIGRUNTIMEstatic __attribute__ ((__unused__)) char *
676SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
677 char *r = buff;
678 size_t lname = (name ? strlen(name) : 0);
679 if ((2*sz + 2 + lname) > bsz) return 0;
680 *(r++) = '_';
681 r = SWIG_PackData(r,ptr,sz);
682 if (lname) {
683 strncpy(r,name,lname+1);
684 } else {
685 *r = 0;
686 }
687 return buff;
688}
689
690SWIGRUNTIMEstatic __attribute__ ((__unused__)) const char *
691SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
692 if (*c != '_') {
693 if (strcmp(c,"NULL") == 0) {
694 memset(ptr,0,sz);
695 return name;
696 } else {
697 return 0;
698 }
699 }
700 return SWIG_UnpackData(++c,ptr,sz);
701}
702
703#ifdef __cplusplus199711L
704}
705#endif
706
707/* Errors in SWIG */
708#define SWIG_UnknownError-1 -1
709#define SWIG_IOError-2 -2
710#define SWIG_RuntimeError-3 -3
711#define SWIG_IndexError-4 -4
712#define SWIG_TypeError-5 -5
713#define SWIG_DivisionByZero-6 -6
714#define SWIG_OverflowError-7 -7
715#define SWIG_SyntaxError-8 -8
716#define SWIG_ValueError-9 -9
717#define SWIG_SystemError-10 -10
718#define SWIG_AttributeError-11 -11
719#define SWIG_MemoryError-12 -12
720#define SWIG_NullReferenceError-13 -13
721
722
723
724#ifdef __cplusplus199711L
725/* Needed on some windows machines---since MS plays funny games with the header files under C++ */
726#include <math.h>
727#include <stdlib.h>
728extern "C" {
729#endif
730#include "EXTERN.h"
731#include "perl.h"
732#include "XSUB.h"
733
734/* Add in functionality missing in older versions of Perl. Much of this is based on Devel-PPPort on cpan. */
735
736/* Add PERL_REVISION, PERL_VERSION, PERL_SUBVERSION if missing */
737#ifndef PERL_REVISION5
738# if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
739# define PERL_PATCHLEVEL_H_IMPLICIT
740# include <patchlevel.h>
741# endif
742# if !(defined(PERL_VERSION20) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
743# include <could_not_find_Perl_patchlevel.h>
744# endif
745# ifndef PERL_REVISION5
746# define PERL_REVISION5 (5)
747# define PERL_VERSION20 PATCHLEVEL
748# define PERL_SUBVERSION1 SUBVERSION
749# endif
750#endif
751
752#if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
753#define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
754#endif
755
756#ifndef SvIOK_UV
757# define SvIOK_UV(sv)(((sv)->sv_flags & (0x00000100|0x80000000)) == (0x00000100
|0x80000000))
(SvIOK(sv)((sv)->sv_flags & 0x00000100) && (SvUVX(sv)((XPVUV*) (sv)->sv_any)->xuv_u.xivu_uv == SvIVX(sv)((XPVIV*) (sv)->sv_any)->xiv_u.xivu_iv))
758#endif
759
760#ifndef SvUOK
761# define SvUOK(sv)(((sv)->sv_flags & (0x00000100|0x80000000)) == (0x00000100
|0x80000000))
SvIOK_UV(sv)(((sv)->sv_flags & (0x00000100|0x80000000)) == (0x00000100
|0x80000000))
762#endif
763
764#if ((PERL_VERSION20 < 4) || ((PERL_VERSION20 == 4) && (PERL_SUBVERSION1 <= 5)))
765# define PL_sv_undef(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Isv_undef
)
sv_undef
766# define PL_na(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Ina
)
na
767# define PL_errgv(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Ierrgv
)
errgv
768# define PL_sv_no(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Isv_no
)
sv_no
769# define PL_sv_yes(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Isv_yes
)
sv_yes
770# define PL_markstack_ptr(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Imarkstack_ptr
)
markstack_ptr
771#endif
772
773#ifndef IVSIZE8
774# ifdef LONGSIZE8
775# define IVSIZE8 LONGSIZE8
776# else
777# define IVSIZE8 4 /* A bold guess, but the best we can make. */
778# endif
779#endif
780
781#ifndef INT2PTR
782# if (IVSIZE8 == PTRSIZE8) && (UVSIZE8 == PTRSIZE8)
783# define PTRVUV UV
784# define INT2PTR(any,d)(any)(d) (any)(d)
785# else
786# if PTRSIZE8 == LONGSIZE8
787# define PTRVUV unsigned long
788# else
789# define PTRVUV unsigned
790# endif
791# define INT2PTR(any,d)(any)(d) (any)(PTRVUV)(d)
792# endif
793
794# define NUM2PTR(any,d)(any)(UV)(d) (any)(PTRVUV)(d)
795# define PTR2IV(p)(IV)(p) INT2PTR(IV,p)(IV)(p)
796# define PTR2UV(p)(UV)(p) INT2PTR(UV,p)(UV)(p)
797# define PTR2NV(p)(NV)(UV)(p) NUM2PTR(NV,p)(NV)(UV)(p)
798
799# if PTRSIZE8 == LONGSIZE8
800# define PTR2ul(p)(unsigned long)(p) (unsigned long)(p)
801# else
802# define PTR2ul(p)(unsigned long)(p) INT2PTR(unsigned long,p)(unsigned long)(p)
803# endif
804#endif /* !INT2PTR */
805
806#ifndef SvPV_nolen
807# define SvPV_nolen(x)((((x)->sv_flags & (0x00000400|0x00200000)) == 0x00000400
) ? ((x)->sv_u.svu_pv) : Perl_sv_2pv_flags(((PerlInterpreter
*)pthread_getspecific(PL_thr_key)), x,0,2))
SvPV(x,PL_na)((((x)->sv_flags & (0x00000400|0x00200000)) == 0x00000400
) ? (((((PerlInterpreter *)pthread_getspecific(PL_thr_key))->
Ina) = ((XPV*) (x)->sv_any)->xpv_cur), ((x)->sv_u.svu_pv
)) : Perl_sv_2pv_flags(((PerlInterpreter *)pthread_getspecific
(PL_thr_key)), x,&(((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ina),2))
808#endif
809
810#ifndef get_sv
811# define get_sv perl_get_sv
812#endif
813
814#ifndef ERRSV(*((0+((((PerlInterpreter *)pthread_getspecific(PL_thr_key))->
Ierrgv))->sv_u.svu_gp)->gp_sv ? &((0+((((PerlInterpreter
*)pthread_getspecific(PL_thr_key))->Ierrgv))->sv_u.svu_gp
)->gp_sv) : &((0+(Perl_gv_add_by_type(((PerlInterpreter
*)pthread_getspecific(PL_thr_key)), ((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv)),SVt_NULL))->sv_u.svu_gp)->gp_sv
)))
815# define ERRSV(*((0+((((PerlInterpreter *)pthread_getspecific(PL_thr_key))->
Ierrgv))->sv_u.svu_gp)->gp_sv ? &((0+((((PerlInterpreter
*)pthread_getspecific(PL_thr_key))->Ierrgv))->sv_u.svu_gp
)->gp_sv) : &((0+(Perl_gv_add_by_type(((PerlInterpreter
*)pthread_getspecific(PL_thr_key)), ((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv)),SVt_NULL))->sv_u.svu_gp)->gp_sv
)))
get_sv("@",FALSE)Perl_get_sv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), "@",(0))
816#endif
817
818#ifndef pTHX_PerlInterpreter* my_perl ,
819#define pTHX_PerlInterpreter* my_perl ,
820#endif
821
822#include <string.h>
823#ifdef __cplusplus199711L
824}
825#endif
826
827/* -----------------------------------------------------------------------------
828 * error manipulation
829 * ----------------------------------------------------------------------------- */
830
831SWIGINTERNstatic __attribute__ ((__unused__)) const char*
832SWIG_Perl_ErrorType(int code) {
833 const char* type = 0;
834 switch(code) {
835 case SWIG_MemoryError-12:
836 type = "MemoryError";
837 break;
838 case SWIG_IOError-2:
839 type = "IOError";
840 break;
841 case SWIG_RuntimeError-3:
842 type = "RuntimeError";
843 break;
844 case SWIG_IndexError-4:
845 type = "IndexError";
846 break;
847 case SWIG_TypeError-5:
848 type = "TypeError";
849 break;
850 case SWIG_DivisionByZero-6:
851 type = "ZeroDivisionError";
852 break;
853 case SWIG_OverflowError-7:
854 type = "OverflowError";
855 break;
856 case SWIG_SyntaxError-8:
857 type = "SyntaxError";
858 break;
859 case SWIG_ValueError-9:
860 type = "ValueError";
861 break;
862 case SWIG_SystemError-10:
863 type = "SystemError";
864 break;
865 case SWIG_AttributeError-11:
866 type = "AttributeError";
867 break;
868 default:
869 type = "RuntimeError";
870 }
871 return type;
872}
873
874
875
876
877/* -----------------------------------------------------------------------------
878 * perlrun.swg
879 *
880 * This file contains the runtime support for Perl modules
881 * and includes code for managing global variables and pointer
882 * type checking.
883 * ----------------------------------------------------------------------------- */
884
885#ifdef PERL_OBJECT
886#define SWIG_PERL_OBJECT_DECL CPerlObj *SWIGUNUSEDPARM(pPerl),
887#define SWIG_PERL_OBJECT_CALL pPerl,
888#else
889#define SWIG_PERL_OBJECT_DECL
890#define SWIG_PERL_OBJECT_CALL
891#endif
892
893/* Common SWIG API */
894
895/* for raw pointers */
896#define SWIG_ConvertPtr(obj, pp, type, flags)SWIG_Perl_ConvertPtr( obj, pp, type, flags) SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags)
897#define SWIG_NewPointerObj(p, type, flags)SWIG_Perl_NewPointerObj( p, type, flags) SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags)
898
899/* for raw packed data */
900#define SWIG_ConvertPacked(obj, p, s, type)SWIG_Perl_ConvertPacked( obj, p, s, type) SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type)
901#define SWIG_NewPackedObj(p, s, type)SWIG_Perl_NewPackedObj( p, s, type) SWIG_Perl_NewPackedObj(SWIG_PERL_OBJECT_CALL p, s, type)
902
903/* for class or struct pointers */
904#define SWIG_ConvertInstance(obj, pptr, type, flags)SWIG_Perl_ConvertPtr( obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags)SWIG_Perl_ConvertPtr( obj, pptr, type, flags)
905#define SWIG_NewInstanceObj(ptr, type, flags)SWIG_Perl_NewPointerObj( ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags)SWIG_Perl_NewPointerObj( ptr, type, flags)
906
907/* for C or C++ function pointers */
908#define SWIG_ConvertFunctionPtr(obj, pptr, type)SWIG_Perl_ConvertPtr( obj, pptr, type, 0) SWIG_ConvertPtr(obj, pptr, type, 0)SWIG_Perl_ConvertPtr( obj, pptr, type, 0)
909#define SWIG_NewFunctionPtrObj(ptr, type)SWIG_Perl_NewPointerObj( ptr, type, 0) SWIG_NewPointerObj(ptr, type, 0)SWIG_Perl_NewPointerObj( ptr, type, 0)
910
911/* for C++ member pointers, ie, member methods */
912#define SWIG_ConvertMember(obj, ptr, sz, ty)SWIG_Perl_ConvertPacked( obj, ptr, sz, ty) SWIG_ConvertPacked(obj, ptr, sz, ty)SWIG_Perl_ConvertPacked( obj, ptr, sz, ty)
913#define SWIG_NewMemberObj(ptr, sz, type)SWIG_Perl_NewPackedObj( ptr, sz, type) SWIG_NewPackedObj(ptr, sz, type)SWIG_Perl_NewPackedObj( ptr, sz, type)
914
915
916/* Runtime API */
917
918#define SWIG_GetModule(clientdata)SWIG_Perl_GetModule() SWIG_Perl_GetModule()
919#define SWIG_SetModule(clientdata, pointer)SWIG_Perl_SetModule(pointer) SWIG_Perl_SetModule(pointer)
920
921
922/* Error manipulation */
923
924#define SWIG_ErrorType(code)SWIG_Perl_ErrorType(code) SWIG_Perl_ErrorType(code)
925#define SWIG_Error(code, msg)Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(code), msg)
sv_setpvfPerl_sv_setpvf_nocontext(GvSV(PL_errgv)((0+((((PerlInterpreter *)pthread_getspecific(PL_thr_key))->
Ierrgv))->sv_u.svu_gp)->gp_sv)
,"%s %s\n", SWIG_ErrorType(code)SWIG_Perl_ErrorType(code), msg)
926#define SWIG_failgoto fail goto fail
927
928/* Perl-specific SWIG API */
929
930#define SWIG_MakePtr(sv, ptr, type, flags)SWIG_Perl_MakePtr( sv, ptr, type, flags) SWIG_Perl_MakePtr(SWIG_PERL_OBJECT_CALL sv, ptr, type, flags)
931#define SWIG_MakePackedObj(sv, p, s, type)SWIG_Perl_MakePackedObj( sv, p, s, type) SWIG_Perl_MakePackedObj(SWIG_PERL_OBJECT_CALL sv, p, s, type)
932#define SWIG_SetError(str)Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(-3), str)
SWIG_Error(SWIG_RuntimeError, str)Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(-3), str)
933
934
935#define SWIG_PERL_DECL_ARGS_1(arg1)( arg1) (SWIG_PERL_OBJECT_DECL arg1)
936#define SWIG_PERL_CALL_ARGS_1(arg1)( arg1) (SWIG_PERL_OBJECT_CALL arg1)
937#define SWIG_PERL_DECL_ARGS_2(arg1, arg2)( arg1, arg2) (SWIG_PERL_OBJECT_DECL arg1, arg2)
938#define SWIG_PERL_CALL_ARGS_2(arg1, arg2)( arg1, arg2) (SWIG_PERL_OBJECT_CALL arg1, arg2)
939
940/* -----------------------------------------------------------------------------
941 * pointers/data manipulation
942 * ----------------------------------------------------------------------------- */
943
944/* For backward compatibility only */
945#define SWIG_POINTER_EXCEPTION0 0
946
947#ifdef __cplusplus199711L
948extern "C" {
949#endif
950
951#define SWIG_OWNER0x1 SWIG_POINTER_OWN0x1
952#define SWIG_SHADOW0x1 << 1 SWIG_OWNER0x1 << 1
953
954#define SWIG_MAYBE_PERL_OBJECT SWIG_PERL_OBJECT_DECL
955
956/* SWIG Perl macros */
957
958/* Macro to declare an XS function */
959#ifndef XSPROTO
960# define XSPROTO(name)void name(PerlInterpreter* my_perl , CV* cv) void name(pTHX_PerlInterpreter* my_perl , CV* cv)
961#endif
962
963/* Macro to call an XS function */
964#ifdef PERL_OBJECT
965# define SWIG_CALLXS(_name)_name(((PerlInterpreter *)pthread_getspecific(PL_thr_key)), cv
)
_name(cv,pPerl)
966#else
967# ifndef MULTIPLICITY
968# define SWIG_CALLXS(_name)_name(((PerlInterpreter *)pthread_getspecific(PL_thr_key)), cv
)
_name(cv)
969# else
970# define SWIG_CALLXS(_name)_name(((PerlInterpreter *)pthread_getspecific(PL_thr_key)), cv
)
_name(PERL_GET_THX((PerlInterpreter *)pthread_getspecific(PL_thr_key)), cv)
971# endif
972#endif
973
974#ifdef PERL_OBJECT
975#define MAGIC_PPERL CPerlObj *pPerl = (CPerlObj *) this;
976
977#ifdef __cplusplus199711L
978extern "C" {
979#endif
980typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *);
981#ifdef __cplusplus199711L
982}
983#endif
984
985#define SWIG_MAGIC(a,b)(struct interpreter *interp, SV *a, MAGIC *b) (SV *a, MAGIC *b)
986#define SWIGCLASS_STATICstatic __attribute__ ((__unused__))
987
988#else /* PERL_OBJECT */
989
990#define MAGIC_PPERL
991#define SWIGCLASS_STATICstatic __attribute__ ((__unused__)) static SWIGUNUSED__attribute__ ((__unused__))
992
993#ifndef MULTIPLICITY
994#define SWIG_MAGIC(a,b)(struct interpreter *interp, SV *a, MAGIC *b) (SV *a, MAGIC *b)
995
996#ifdef __cplusplus199711L
997extern "C" {
998#endif
999typedef int (*SwigMagicFunc)(SV *, MAGIC *);
1000#ifdef __cplusplus199711L
1001}
1002#endif
1003
1004#else /* MULTIPLICITY */
1005
1006#define SWIG_MAGIC(a,b)(struct interpreter *interp, SV *a, MAGIC *b) (struct interpreter *interp, SV *a, MAGIC *b)
1007
1008#ifdef __cplusplus199711L
1009extern "C" {
1010#endif
1011typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
1012#ifdef __cplusplus199711L
1013}
1014#endif
1015
1016#endif /* MULTIPLICITY */
1017#endif /* PERL_OBJECT */
1018
1019/* Workaround for bug in perl 5.6.x croak and earlier */
1020#if (PERL_VERSION20 < 8)
1021# ifdef PERL_OBJECT
1022# define SWIG_croak_null()Perl_croak_nocontext(((char*)__null)) SWIG_Perl_croak_null(pPerl)
1023static void SWIG_Perl_croak_null(CPerlObj *pPerl)
1024# else
1025static void SWIG_croak_null()Perl_croak_nocontext(((char*)__null))
1026# endif
1027{
1028 SV *err=ERRSV(*((0+((((PerlInterpreter *)pthread_getspecific(PL_thr_key))->
Ierrgv))->sv_u.svu_gp)->gp_sv ? &((0+((((PerlInterpreter
*)pthread_getspecific(PL_thr_key))->Ierrgv))->sv_u.svu_gp
)->gp_sv) : &((0+(Perl_gv_add_by_type(((PerlInterpreter
*)pthread_getspecific(PL_thr_key)), ((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv)),SVt_NULL))->sv_u.svu_gp)->gp_sv
)))
;
1029# if (PERL_VERSION20 < 6)
1030 croakPerl_croak_nocontext("%_", err);
1031# else
1032 if (SvOK(err)((err)->sv_flags & (0x00000100|0x00000200|0x00000400|0x00000800
| 0x00001000|0x00002000|0x00004000|0x00008000) || (((svtype)(
(err)->sv_flags & 0xff)) == SVt_REGEXP || ((err)->sv_flags
& (0xff|0x00004000|0x00008000|0x01000000)) == (SVt_PVLV|
0x01000000)))
&& !SvROK(err)((err)->sv_flags & 0x00000800)) croakPerl_croak_nocontext("%_", err);
1033 croakPerl_croak_nocontext(Nullch((char*)__null));
1034# endif
1035}
1036#else
1037# define SWIG_croak_null()Perl_croak_nocontext(((char*)__null)) croakPerl_croak_nocontext(Nullch((char*)__null))
1038#endif
1039
1040
1041/*
1042 Define how strict is the cast between strings and integers/doubles
1043 when overloading between these types occurs.
1044
1045 The default is making it as strict as possible by using SWIG_AddCast
1046 when needed.
1047
1048 You can use -DSWIG_PERL_NO_STRICT_STR2NUM at compilation time to
1049 disable the SWIG_AddCast, making the casting between string and
1050 numbers less strict.
1051
1052 In the end, we try to solve the overloading between strings and
1053 numerical types in the more natural way, but if you can avoid it,
1054 well, avoid it using %rename, for example.
1055*/
1056#ifndef SWIG_PERL_NO_STRICT_STR2NUM
1057# ifndef SWIG_PERL_STRICT_STR2NUM
1058# define SWIG_PERL_STRICT_STR2NUM
1059# endif
1060#endif
1061#ifdef SWIG_PERL_STRICT_STR2NUM
1062/* string takes precedence */
1063#define SWIG_Str2NumCast(x)SWIG_AddCast(x) SWIG_AddCast(x)
1064#else
1065/* number takes precedence */
1066#define SWIG_Str2NumCast(x)SWIG_AddCast(x) x
1067#endif
1068
1069
1070
1071#include <stdlib.h>
1072
1073SWIGRUNTIMEstatic __attribute__ ((__unused__)) const char *
1074SWIG_Perl_TypeProxyName(const swig_type_info *type) {
1075 if (!type) return NULL__null;
1076 if (type->clientdata != NULL__null) {
1077 return (const char*) type->clientdata;
1078 }
1079 else {
1080 return type->name;
1081 }
1082}
1083
1084SWIGRUNTIMEstatic __attribute__ ((__unused__)) swig_cast_info *
1085SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
1086 SWIG_TypeCheck_Template(( (!iter->type->clientdata && (strcmp(iter->type->name, c) == 0))if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if
(( (!iter->type->clientdata && (strcmp(iter->
type->name, c) == 0)) || (iter->type->clientdata &&
(strcmp((char*)iter->type->clientdata, c) == 0)))) { if
(iter == ty->cast) return iter; iter->prev->next = iter
->next; if (iter->next) iter->next->prev = iter->
prev; iter->next = ty->cast; iter->prev = 0; if (ty->
cast) ty->cast->prev = iter; ty->cast = iter; return
iter; } iter = iter->next; } } return 0
9
Within the expansion of the macro 'SWIG_TypeCheck_Template':
a
Null pointer passed as an argument to a 'nonnull' parameter
1087 || (iter->type->clientdata && (strcmp((char*)iter->type->clientdata, c) == 0))), ty)if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if
(( (!iter->type->clientdata && (strcmp(iter->
type->name, c) == 0)) || (iter->type->clientdata &&
(strcmp((char*)iter->type->clientdata, c) == 0)))) { if
(iter == ty->cast) return iter; iter->prev->next = iter
->next; if (iter->next) iter->next->prev = iter->
prev; iter->next = ty->cast; iter->prev = 0; if (ty->
cast) ty->cast->prev = iter; ty->cast = iter; return
iter; } iter = iter->next; } } return 0
;
1088}
1089
1090
1091/* Function for getting a pointer value */
1092
1093SWIGRUNTIMEstatic __attribute__ ((__unused__)) int
1094SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) {
1095 swig_cast_info *tc;
1096 void *voidptr = (void *)0;
1097 SV *tsv = 0;
1098 /* If magical, apply more magic */
1099 if (SvGMAGICAL(sv)((sv)->sv_flags & 0x00200000))
1
Taking false branch
1100 mg_get(sv)Perl_mg_get(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv)
;
1101
1102 /* Check to see if this is an object */
1103 if (sv_isobject(sv)Perl_sv_isobject(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv)
) {
2
Taking true branch
1104 IV tmp = 0;
1105 tsv = (SV*) SvRV(sv)((sv)->sv_u.svu_rv);
1106 if ((SvTYPE(tsv)((svtype)((tsv)->sv_flags & 0xff)) == SVt_PVHV)) {
3
Taking false branch
1107 MAGIC *mg;
1108 if (SvMAGICAL(tsv)((tsv)->sv_flags & (0x00200000|0x00400000|0x00800000))) {
1109 mg = mg_find(tsv,'P')Perl_mg_find(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), tsv,'P')
;
1110 if (mg) {
1111 sv = mg->mg_obj;
1112 if (sv_isobject(sv)Perl_sv_isobject(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv)
) {
1113 tsv = (SV*)SvRV(sv)((sv)->sv_u.svu_rv);
1114 tmp = SvIV(tsv)((((tsv)->sv_flags & (0x00000100|0x00200000)) == 0x00000100
) ? ((XPVIV*) (tsv)->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags
(((PerlInterpreter *)pthread_getspecific(PL_thr_key)), tsv,2)
)
;
1115 }
1116 }
1117 } else {
1118 return SWIG_ERROR(-1);
1119 }
1120 } else {
1121 tmp = SvIV(tsv)((((tsv)->sv_flags & (0x00000100|0x00200000)) == 0x00000100
) ? ((XPVIV*) (tsv)->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags
(((PerlInterpreter *)pthread_getspecific(PL_thr_key)), tsv,2)
)
;
1122 }
1123 voidptr = INT2PTR(void *,tmp)(void *)(tmp);
1124 } else if (! SvOK(sv)((sv)->sv_flags & (0x00000100|0x00000200|0x00000400|0x00000800
| 0x00001000|0x00002000|0x00004000|0x00008000) || (((svtype)(
(sv)->sv_flags & 0xff)) == SVt_REGEXP || ((sv)->sv_flags
& (0xff|0x00004000|0x00008000|0x01000000)) == (SVt_PVLV|
0x01000000)))
) { /* Check for undef */
1125 *(ptr) = (void *) 0;
1126 return SWIG_OK(0);
1127 } else if (SvTYPE(sv)((svtype)((sv)->sv_flags & 0xff)) == SVt_RVSVt_IV) { /* Check for NULL pointer */
1128 if (!SvROK(sv)((sv)->sv_flags & 0x00000800)) {
1129 *(ptr) = (void *) 0;
1130 return SWIG_OK(0);
1131 } else {
1132 return SWIG_ERROR(-1);
1133 }
1134 } else { /* Don't know what it is */
1135 return SWIG_ERROR(-1);
1136 }
1137 if (_t) {
4
Assuming '_t' is non-null
5
Taking true branch
1138 /* Now see if the types match */
1139 char *_c = HvNAME(SvSTASH(SvRV(sv)))((((((XPVMG*) (((sv)->sv_u.svu_rv))->sv_any)->xmg_stash
)->sv_flags & 0x02000000) && ((struct xpvhv_aux
*)&(((((XPVMG*) (((sv)->sv_u.svu_rv))->sv_any)->
xmg_stash)->sv_u.svu_hash)[((XPVHV*) (((XPVMG*) (((sv)->
sv_u.svu_rv))->sv_any)->xmg_stash)->sv_any)->xhv_max
+1]))->xhv_name_u.xhvnameu_name && ( ((struct xpvhv_aux
*)&(((((XPVMG*) (((sv)->sv_u.svu_rv))->sv_any)->
xmg_stash)->sv_u.svu_hash)[((XPVHV*) (((XPVMG*) (((sv)->
sv_u.svu_rv))->sv_any)->xmg_stash)->sv_any)->xhv_max
+1]))->xhv_name_count ? *((struct xpvhv_aux*)&(((((XPVMG
*) (((sv)->sv_u.svu_rv))->sv_any)->xmg_stash)->sv_u
.svu_hash)[((XPVHV*) (((XPVMG*) (((sv)->sv_u.svu_rv))->
sv_any)->xmg_stash)->sv_any)->xhv_max+1]))->xhv_name_u
.xhvnameu_names : ((struct xpvhv_aux*)&(((((XPVMG*) (((sv
)->sv_u.svu_rv))->sv_any)->xmg_stash)->sv_u.svu_hash
)[((XPVHV*) (((XPVMG*) (((sv)->sv_u.svu_rv))->sv_any)->
xmg_stash)->sv_any)->xhv_max+1]))->xhv_name_u.xhvnameu_name
)) ? (( ((struct xpvhv_aux*)&(((((XPVMG*) (((sv)->sv_u
.svu_rv))->sv_any)->xmg_stash)->sv_u.svu_hash)[((XPVHV
*) (((XPVMG*) (((sv)->sv_u.svu_rv))->sv_any)->xmg_stash
)->sv_any)->xhv_max+1]))->xhv_name_count ? *((struct
xpvhv_aux*)&(((((XPVMG*) (((sv)->sv_u.svu_rv))->sv_any
)->xmg_stash)->sv_u.svu_hash)[((XPVHV*) (((XPVMG*) (((sv
)->sv_u.svu_rv))->sv_any)->xmg_stash)->sv_any)->
xhv_max+1]))->xhv_name_u.xhvnameu_names : ((struct xpvhv_aux
*)&(((((XPVMG*) (((sv)->sv_u.svu_rv))->sv_any)->
xmg_stash)->sv_u.svu_hash)[((XPVHV*) (((XPVMG*) (((sv)->
sv_u.svu_rv))->sv_any)->xmg_stash)->sv_any)->xhv_max
+1]))->xhv_name_u.xhvnameu_name ))->hek_key : __null)
;
6
'_c' initialized to a null pointer value
1140 tc = SWIG_TypeProxyCheck(_c,_t);
7
Passing null pointer value via 1st parameter 'c'
8
Calling 'SWIG_TypeProxyCheck'
1141 if (!tc) {
1142 return SWIG_ERROR(-1);
1143 }
1144 {
1145 int newmemory = 0;
1146 *ptr = SWIG_TypeCast(tc,voidptr,&newmemory);
1147 assert(!newmemory); /* newmemory handling not yet implemented */
1148 }
1149 } else {
1150 *ptr = voidptr;
1151 }
1152
1153 /*
1154 * DISOWN implementation: we need a perl guru to check this one.
1155 */
1156 if (tsv && (flags & SWIG_POINTER_DISOWN0x1)) {
1157 /*
1158 * almost copy paste code from below SWIG_POINTER_OWN setting
1159 */
1160 SV *obj = sv;
1161 HV *stash = SvSTASH(SvRV(obj))((XPVMG*) (((obj)->sv_u.svu_rv))->sv_any)->xmg_stash;
1162 GV *gv = *(GV**) hv_fetch(stash, "OWNER", 5, TRUE)((SV**) Perl_hv_common_key_len(((PerlInterpreter *)pthread_getspecific
(PL_thr_key)), (stash),("OWNER"),(5),((1)) ? (0x20 | 0x10) : 0x20
,__null,0))
;
1163 if (isGV(gv)(((svtype)((gv)->sv_flags & 0xff)) == SVt_PVGV)) {
1164 HV *hv = GvHVn(gv)((0+(gv)->sv_u.svu_gp)->gp_hv ? (0+(gv)->sv_u.svu_gp
)->gp_hv : (0+(Perl_gv_add_by_type(((PerlInterpreter *)pthread_getspecific
(PL_thr_key)), (gv),SVt_PVHV))->sv_u.svu_gp)->gp_hv)
;
1165 /*
1166 * To set ownership (see below), a newSViv(1) entry is added.
1167 * Hence, to remove ownership, we delete the entry.
1168 */
1169 if (hv_exists_ent(hv, obj, 0)(Perl_hv_common(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), (hv),(obj),__null,0,0,0x08,0,(0)) ? (1) : (0))
) {
1170 hv_delete_ent(hv, obj, 0, 0)(((SV *)({ void *_p = (Perl_hv_common(((PerlInterpreter *)pthread_getspecific
(PL_thr_key)), (hv),(obj),__null,0,0,(0) | 0x40,__null,(0)));
_p; })))
;
1171 }
1172 }
1173 }
1174 return SWIG_OK(0);
1175}
1176
1177SWIGRUNTIMEstatic __attribute__ ((__unused__)) void
1178SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) {
1179 if (ptr && (flags & SWIG_SHADOW0x1 << 1)) {
1180 SV *self;
1181 SV *obj=newSV(0)Perl_newSV(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), 0)
;
1182 HV *hash=newHV()((HV *)({ void *_p = (Perl_newSV_type(((PerlInterpreter *)pthread_getspecific
(PL_thr_key)), SVt_PVHV)); _p; }))
;
1183 HV *stash;
1184 sv_setref_pv(obj, (char *) SWIG_Perl_TypeProxyName(t), ptr)Perl_sv_setref_pv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), obj,(char *) SWIG_Perl_TypeProxyName(t),ptr)
;
1185 stash=SvSTASH(SvRV(obj))((XPVMG*) (((obj)->sv_u.svu_rv))->sv_any)->xmg_stash;
1186 if (flags & SWIG_POINTER_OWN0x1) {
1187 HV *hv;
1188 GV *gv=*(GV**)hv_fetch(stash, "OWNER", 5, TRUE)((SV**) Perl_hv_common_key_len(((PerlInterpreter *)pthread_getspecific
(PL_thr_key)), (stash),("OWNER"),(5),((1)) ? (0x20 | 0x10) : 0x20
,__null,0))
;
1189 if (!isGV(gv)(((svtype)((gv)->sv_flags & 0xff)) == SVt_PVGV))
1190 gv_init(gv, stash, "OWNER", 5, FALSE)Perl_gv_init_pvn(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), gv,stash,"OWNER",5,0x02*!!((0)))
;
1191 hv=GvHVn(gv)((0+(gv)->sv_u.svu_gp)->gp_hv ? (0+(gv)->sv_u.svu_gp
)->gp_hv : (0+(Perl_gv_add_by_type(((PerlInterpreter *)pthread_getspecific
(PL_thr_key)), (gv),SVt_PVHV))->sv_u.svu_gp)->gp_hv)
;
1192 hv_store_ent(hv, obj, newSViv(1), 0)((HE *) Perl_hv_common(((PerlInterpreter *)pthread_getspecific
(PL_thr_key)), (hv),(obj),__null,0,0,0x04,(Perl_newSViv(((PerlInterpreter
*)pthread_getspecific(PL_thr_key)), 1)),(0)))
;
1193 }
1194 sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0)Perl_sv_magic(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), (SV *)hash,(SV *)obj,'P',((char*)__null),0)
;
1195 SvREFCNT_dec(obj)S_SvREFCNT_dec(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), ((SV *)({ void *_p = (obj); _p; })))
;
1196 self=newRV_noinc((SV *)hash)Perl_newRV_noinc(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), (SV *)hash)
;
1197 sv_setsv(sv, self)Perl_sv_setsv_flags(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv,self,2|0)
;
1198 SvREFCNT_dec((SV *)self)S_SvREFCNT_dec(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), ((SV *)({ void *_p = ((SV *)self); _p; })))
;
1199 sv_bless(sv, stash)Perl_sv_bless(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv,stash)
;
1200 }
1201 else {
1202 sv_setref_pv(sv, (char *) SWIG_Perl_TypeProxyName(t), ptr)Perl_sv_setref_pv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv,(char *) SWIG_Perl_TypeProxyName(t),ptr)
;
1203 }
1204}
1205
1206SWIGRUNTIMEINLINEstatic __attribute__ ((__unused__)) inline SV *
1207SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) {
1208 SV *result = sv_newmortal()Perl_sv_newmortal(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)))
;
1209 SWIG_MakePtr(result, ptr, t, flags)SWIG_Perl_MakePtr( result, ptr, t, flags);
1210 return result;
1211}
1212
1213SWIGRUNTIMEstatic __attribute__ ((__unused__)) void
1214SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) {
1215 char result[1024];
1216 char *r = result;
1217 if ((2*sz + 1 + strlen(SWIG_Perl_TypeProxyName(type))) > 1000) return;
1218 *(r++) = '_';
1219 r = SWIG_PackData(r,ptr,sz);
1220 strcpy(r,SWIG_Perl_TypeProxyName(type));
1221 sv_setpv(sv, result)Perl_sv_setpv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv,result)
;
1222}
1223
1224SWIGRUNTIMEstatic __attribute__ ((__unused__)) SV *
1225SWIG_Perl_NewPackedObj(SWIG_MAYBE_PERL_OBJECT void *ptr, int sz, swig_type_info *type) {
1226 SV *result = sv_newmortal()Perl_sv_newmortal(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)))
;
1227 SWIG_Perl_MakePackedObj(result, ptr, sz, type);
1228 return result;
1229}
1230
1231/* Convert a packed value value */
1232SWIGRUNTIMEstatic __attribute__ ((__unused__)) int
1233SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty) {
1234 swig_cast_info *tc;
1235 const char *c = 0;
1236
1237 if ((!obj) || (!SvOK(obj)((obj)->sv_flags & (0x00000100|0x00000200|0x00000400|0x00000800
| 0x00001000|0x00002000|0x00004000|0x00008000) || (((svtype)(
(obj)->sv_flags & 0xff)) == SVt_REGEXP || ((obj)->sv_flags
& (0xff|0x00004000|0x00008000|0x01000000)) == (SVt_PVLV|
0x01000000)))
)) return SWIG_ERROR(-1);
1238 c = SvPV_nolen(obj)((((obj)->sv_flags & (0x00000400|0x00200000)) == 0x00000400
) ? ((obj)->sv_u.svu_pv) : Perl_sv_2pv_flags(((PerlInterpreter
*)pthread_getspecific(PL_thr_key)), obj,0,2))
;
1239 /* Pointer values must start with leading underscore */
1240 if (*c != '_') return SWIG_ERROR(-1);
1241 c++;
1242 c = SWIG_UnpackData(c,ptr,sz);
1243 if (ty) {
1244 tc = SWIG_TypeCheck(c,ty);
1245 if (!tc) return SWIG_ERROR(-1);
1246 }
1247 return SWIG_OK(0);
1248}
1249
1250
1251/* Macros for low-level exception handling */
1252#define SWIG_croak(x){ Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(-3), x); goto fail; }
{ SWIG_Error(SWIG_RuntimeError, x)Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(-3), x)
; SWIG_failgoto fail; }
1253
1254
1255typedef XSPROTO(SwigPerlWrapper)void SwigPerlWrapper(PerlInterpreter* my_perl , CV* cv);
1256typedef SwigPerlWrapper *SwigPerlWrapperPtr;
1257
1258/* Structure for command table */
1259typedef struct {
1260 const char *name;
1261 SwigPerlWrapperPtr wrapper;
1262} swig_command_info;
1263
1264/* Information for constant table */
1265
1266#define SWIG_INT1 1
1267#define SWIG_FLOAT2 2
1268#define SWIG_STRING3 3
1269#define SWIG_POINTER4 4
1270#define SWIG_BINARY5 5
1271
1272/* Constant information structure */
1273typedef struct swig_constant_info {
1274 int type;
1275 const char *name;
1276 long lvalue;
1277 double dvalue;
1278 void *pvalue;
1279 swig_type_info **ptype;
1280} swig_constant_info;
1281
1282
1283/* Structure for variable table */
1284typedef struct {
1285 const char *name;
1286 SwigMagicFunc set;
1287 SwigMagicFunc get;
1288 swig_type_info **type;
1289} swig_variable_info;
1290
1291/* Magic variable code */
1292#ifndef PERL_OBJECT
1293#define swig_create_magic(s,a,b,c)_swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
1294 #ifndef MULTIPLICITY
1295 SWIGRUNTIMEstatic __attribute__ ((__unused__)) void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *))
1296 #else
1297 SWIGRUNTIMEstatic __attribute__ ((__unused__)) void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *))
1298 #endif
1299#else
1300# define swig_create_magic(s,a,b,c)_swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
1301SWIGRUNTIMEstatic __attribute__ ((__unused__)) void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *))
1302#endif
1303{
1304 MAGIC *mg;
1305 sv_magic(sv,sv,'U',(char *) name,strlen(name))Perl_sv_magic(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv,sv,'U',(char *) name,strlen(name))
;
1306 mg = mg_find(sv,'U')Perl_mg_find(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv,'U')
;
1307 mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
1308 mg->mg_virtual->svt_get = (SwigMagicFunc) get;
1309 mg->mg_virtual->svt_set = (SwigMagicFunc) set;
1310 mg->mg_virtual->svt_len = 0;
1311 mg->mg_virtual->svt_clear = 0;
1312 mg->mg_virtual->svt_free = 0;
1313}
1314
1315
1316SWIGRUNTIMEstatic __attribute__ ((__unused__)) swig_module_info *
1317SWIG_Perl_GetModule(void) {
1318 static void *type_pointer = (void *)0;
1319 SV *pointer;
1320
1321 /* first check if pointer already created */
1322 if (!type_pointer) {
1323 pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE | GV_ADDMULTI)Perl_get_sv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), "swig_runtime_data::type_pointer" "4",(0) | 0x02)
;
1324 if (pointer && SvOK(pointer)((pointer)->sv_flags & (0x00000100|0x00000200|0x00000400
|0x00000800| 0x00001000|0x00002000|0x00004000|0x00008000) || (
((svtype)((pointer)->sv_flags & 0xff)) == SVt_REGEXP ||
((pointer)->sv_flags & (0xff|0x00004000|0x00008000|0x01000000
)) == (SVt_PVLV|0x01000000)))
) {
1325 type_pointer = INT2PTR(swig_type_info **, SvIV(pointer))(swig_type_info **)(((((pointer)->sv_flags & (0x00000100
|0x00200000)) == 0x00000100) ? ((XPVIV*) (pointer)->sv_any
)->xiv_u.xivu_iv : Perl_sv_2iv_flags(((PerlInterpreter *)pthread_getspecific
(PL_thr_key)), pointer,2)))
;
1326 }
1327 }
1328
1329 return (swig_module_info *) type_pointer;
1330}
1331
1332SWIGRUNTIMEstatic __attribute__ ((__unused__)) void
1333SWIG_Perl_SetModule(swig_module_info *module) {
1334 SV *pointer;
1335
1336 /* create a new pointer */
1337 pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE | GV_ADDMULTI)Perl_get_sv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), "swig_runtime_data::type_pointer" "4",(1) | 0x02)
;
1338 sv_setiv(pointer, PTR2IV(module))Perl_sv_setiv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), pointer,(IV)(module))
;
1339}
1340
1341#ifdef __cplusplus199711L
1342}
1343#endif
1344
1345/* Workaround perl5 global namespace pollution. Note that undefining library
1346 * functions like fopen will not solve the problem on all platforms as fopen
1347 * might be a macro on Windows but not necessarily on other operating systems. */
1348#ifdef do_open
1349 #undef do_open
1350#endif
1351#ifdef do_close
1352 #undef do_close
1353#endif
1354#ifdef scalar
1355 #undef scalar
1356#endif
1357#ifdef list
1358 #undef list
1359#endif
1360#ifdef apply
1361 #undef apply
1362#endif
1363#ifdef convert
1364 #undef convert
1365#endif
1366#ifdef Error
1367 #undef Error
1368#endif
1369#ifdef form
1370 #undef form
1371#endif
1372#ifdef vform
1373 #undef vform
1374#endif
1375#ifdef LABEL
1376 #undef LABEL
1377#endif
1378#ifdef METHOD
1379 #undef METHOD
1380#endif
1381#ifdef Move
1382 #undef Move
1383#endif
1384#ifdef yylex
1385 #undef yylex
1386#endif
1387#ifdef yyparse
1388 #undef yyparse
1389#endif
1390#ifdef yyerror
1391 #undef yyerror
1392#endif
1393#ifdef invert
1394 #undef invert
1395#endif
1396#ifdef ref
1397 #undef ref
1398#endif
1399#ifdef read
1400 #undef read
1401#endif
1402#ifdef write
1403 #undef write
1404#endif
1405#ifdef eof
1406 #undef eof
1407#endif
1408#ifdef bool
1409 #undef bool
1410#endif
1411#ifdef close
1412 #undef close
1413#endif
1414#ifdef rewind
1415 #undef rewind
1416#endif
1417#ifdef free
1418 #undef free
1419#endif
1420#ifdef malloc
1421 #undef malloc
1422#endif
1423#ifdef calloc
1424 #undef calloc
1425#endif
1426#ifdef Stat
1427 #undef Stat
1428#endif
1429#ifdef check
1430 #undef check
1431#endif
1432#ifdef seekdir
1433 #undef seekdir
1434#endif
1435#ifdef open
1436 #undef open
1437#endif
1438
1439
1440
1441#define SWIG_exception_fail(code, msg)do { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(code), msg); goto fail; } while(0)
do { SWIG_Error(code, msg)Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(code), msg)
; SWIG_failgoto fail; } while(0)
1442
1443#define SWIG_contract_assert(expr, msg)if (!(expr)) { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter
*)pthread_getspecific(PL_thr_key))->Ierrgv))->sv_u.svu_gp
)->gp_sv),"%s %s\n", SWIG_Perl_ErrorType(-3), msg); goto fail
; } else
if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg)Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(-3), msg)
; SWIG_failgoto fail; } else
1444
1445
1446
1447/* -------- TYPES TABLE (BEGIN) -------- */
1448
1449#define SWIGTYPE_p_McastHandleswig_types[0] swig_types[0]
1450#define SWIGTYPE_p_charswig_types[1] swig_types[1]
1451static swig_type_info *swig_types[3];
1452static swig_module_info swig_module = {swig_types, 2, 0, 0, 0, 0};
1453#define SWIG_TypeQuery(name)SWIG_TypeQueryModule(&swig_module, &swig_module, name
)
SWIG_TypeQueryModule(&swig_module, &swig_module, name)
1454#define SWIG_MangledTypeQuery(name)SWIG_MangledTypeQueryModule(&swig_module, &swig_module
, name)
SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
1455
1456/* -------- TYPES TABLE (END) -------- */
1457
1458#define SWIG_initboot_MCAST boot_MCAST
1459
1460#define SWIG_name"MCASTc::boot_MCAST" "MCASTc::boot_MCAST"
1461#define SWIG_prefix"MCASTc::" "MCASTc::"
1462
1463#define SWIGVERSION0x010335 0x010335
1464#define SWIG_VERSION0x010335 SWIGVERSION0x010335
1465
1466
1467#define SWIG_as_voidptr(a)const_cast< void * >(static_cast< const void * >(
a))
const_cast< void * >(static_cast< const void * >(a))
1468#define SWIG_as_voidptrptr(a)((void)const_cast< void * >(static_cast< const void *
>(*a)),reinterpret_cast< void** >(a))
((void)SWIG_as_voidptr(*a)const_cast< void * >(static_cast< const void * >(
*a))
,reinterpret_cast< void** >(a))
1469
1470
1471#include <stdexcept>
1472
1473
1474#ifdef __cplusplus199711L
1475extern "C"
1476#endif
1477#ifndef PERL_OBJECT
1478#ifndef MULTIPLICITY
1479SWIGEXPORT__attribute__ ((visibility("default"))) void SWIG_initboot_MCAST (CV* cv);
1480#else
1481SWIGEXPORT__attribute__ ((visibility("default"))) void SWIG_initboot_MCAST (pTHXo_PerlInterpreter* my_perl , CV* cv);
1482#endif
1483#else
1484SWIGEXPORT__attribute__ ((visibility("default"))) void SWIG_initboot_MCAST (CV *cv, CPerlObj *);
1485#endif
1486
1487
1488#include "mcast.h"
1489#include "mcast_cpp.h"
1490
1491
1492SWIGINTERNstatic __attribute__ ((__unused__)) swig_type_info*
1493SWIG_pchar_descriptor(void)
1494{
1495 static int init = 0;
1496 static swig_type_info* info = 0;
1497 if (!init) {
1498 info = SWIG_TypeQuery("_p_char")SWIG_TypeQueryModule(&swig_module, &swig_module, "_p_char"
)
;
1499 init = 1;
1500 }
1501 return info;
1502}
1503
1504
1505SWIGINTERNstatic __attribute__ ((__unused__)) int
1506SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
1507{
1508 if (SvPOK(obj)((obj)->sv_flags & 0x00000400)) {
1509 STRLEN len = 0;
1510 char *cstr = SvPV(obj, len)((((obj)->sv_flags & (0x00000400|0x00200000)) == 0x00000400
) ? ((len = ((XPV*) (obj)->sv_any)->xpv_cur), ((obj)->
sv_u.svu_pv)) : Perl_sv_2pv_flags(((PerlInterpreter *)pthread_getspecific
(PL_thr_key)), obj,&len,2))
;
1511 size_t size = len + 1;
1512 if (cptr) {
1513 if (alloc) {
1514 if (*alloc == SWIG_NEWOBJ((0) | ((1 << 8) << 1))) {
1515 *cptr = reinterpret_cast< char* >(memcpy((new char[size]), cstr, sizeof(char)*(size)));
1516 } else {
1517 *cptr = cstr;
1518 *alloc = SWIG_OLDOBJ((0));
1519 }
1520 }
1521 }
1522 if (psize) *psize = size;
1523 return SWIG_OK(0);
1524 } else {
1525 swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
1526 if (pchar_descriptor) {
1527 char* vptr = 0;
1528 if (SWIG_ConvertPtr(obj, (void**)&vptr, pchar_descriptor, 0)SWIG_Perl_ConvertPtr( obj, (void**)&vptr, pchar_descriptor
, 0)
== SWIG_OK(0)) {
1529 if (cptr) *cptr = vptr;
1530 if (psize) *psize = vptr ? (strlen(vptr) + 1) : 0;
1531 if (alloc) *alloc = SWIG_OLDOBJ((0));
1532 return SWIG_OK(0);
1533 }
1534 }
1535 }
1536 return SWIG_TypeError-5;
1537}
1538
1539
1540
1541
1542
1543#include <limits.h>
1544#if !defined(SWIG_NO_LLONG_MAX)
1545# if !defined(LLONG_MAX9223372036854775807LL) && defined(__GNUC__4) && defined (__LONG_LONG_MAX__9223372036854775807LL)
1546# define LLONG_MAX9223372036854775807LL __LONG_LONG_MAX__9223372036854775807LL
1547# define LLONG_MIN(-9223372036854775807LL -1) (-LLONG_MAX9223372036854775807LL - 1LL)
1548# define ULLONG_MAX(9223372036854775807LL * 2ULL + 1) (LLONG_MAX9223372036854775807LL * 2ULL + 1ULL)
1549# endif
1550#endif
1551
1552
1553SWIGINTERNstatic __attribute__ ((__unused__)) int
1554SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val)( SV *obj, double *val)
1555{
1556 if (SvNIOK(obj)((obj)->sv_flags & (0x00000100|0x00000200))) {
1557 if (val) *val = SvNV(obj)((((obj)->sv_flags & (0x00000200|0x00200000)) == 0x00000200
) ? ((XPVNV*) (obj)->sv_any)->xnv_u.xnv_nv : Perl_sv_2nv_flags
(((PerlInterpreter *)pthread_getspecific(PL_thr_key)), obj,2)
)
;
1558 return SWIG_OK(0);
1559 } else if (SvIOK(obj)((obj)->sv_flags & 0x00000100)) {
1560 if (val) *val = (double) SvIV(obj)((((obj)->sv_flags & (0x00000100|0x00200000)) == 0x00000100
) ? ((XPVIV*) (obj)->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags
(((PerlInterpreter *)pthread_getspecific(PL_thr_key)), obj,2)
)
;
1561 return SWIG_AddCast(SWIG_OK(0));
1562 } else {
1563 const char *nptr = SvPV_nolen(obj)((((obj)->sv_flags & (0x00000400|0x00200000)) == 0x00000400
) ? ((obj)->sv_u.svu_pv) : Perl_sv_2pv_flags(((PerlInterpreter
*)pthread_getspecific(PL_thr_key)), obj,0,2))
;
1564 if (nptr) {
1565 char *endptr;
1566 double v = strtod(nptr, &endptr);
1567 if (errno(*__errno_location ()) == ERANGE34) {
1568 errno(*__errno_location ()) = 0;
1569 return SWIG_OverflowError-7;
1570 } else {
1571 if (*endptr == '\0') {
1572 if (val) *val = v;
1573 return SWIG_Str2NumCast(SWIG_OK)SWIG_AddCast((0));
1574 }
1575 }
1576 }
1577 }
1578 return SWIG_TypeError-5;
1579}
1580
1581
1582#include <float.h>
1583
1584
1585#include <math.h>
1586
1587
1588SWIGINTERNINLINEstatic __attribute__ ((__unused__)) inline int
1589SWIG_CanCastAsInteger(double *d, double min, double max) {
1590 double x = *d;
1591 if ((min <= x && x <= max)) {
1592 double fx = floor(x);
1593 double cx = ceil(x);
1594 double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */
1595 if ((errno(*__errno_location ()) == EDOM33) || (errno(*__errno_location ()) == ERANGE34)) {
1596 errno(*__errno_location ()) = 0;
1597 } else {
1598 double summ, reps, diff;
1599 if (rd < x) {
1600 diff = x - rd;
1601 } else if (rd > x) {
1602 diff = rd - x;
1603 } else {
1604 return 1;
1605 }
1606 summ = rd + x;
1607 reps = diff/summ;
1608 if (reps < 8*DBL_EPSILON2.2204460492503131e-16) {
1609 *d = rd;
1610 return 1;
1611 }
1612 }
1613 }
1614 return 0;
1615}
1616
1617
1618SWIGINTERNstatic __attribute__ ((__unused__)) int
1619SWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val)( SV *obj, long* val)
1620{
1621 if (SvIOK(obj)((obj)->sv_flags & 0x00000100)) {
1622 if (val) *val = SvIV(obj)((((obj)->sv_flags & (0x00000100|0x00200000)) == 0x00000100
) ? ((XPVIV*) (obj)->sv_any)->xiv_u.xivu_iv : Perl_sv_2iv_flags
(((PerlInterpreter *)pthread_getspecific(PL_thr_key)), obj,2)
)
;
1623 return SWIG_OK(0);
1624 } else {
1625 int dispatch = 0;
1626 const char *nptr = SvPV_nolen(obj)((((obj)->sv_flags & (0x00000400|0x00200000)) == 0x00000400
) ? ((obj)->sv_u.svu_pv) : Perl_sv_2pv_flags(((PerlInterpreter
*)pthread_getspecific(PL_thr_key)), obj,0,2))
;
1627 if (nptr) {
1628 char *endptr;
1629 long v;
1630 errno(*__errno_location ()) = 0;
1631 v = strtol(nptr, &endptr,0);
1632 if (errno(*__errno_location ()) == ERANGE34) {
1633 errno(*__errno_location ()) = 0;
1634 return SWIG_OverflowError-7;
1635 } else {
1636 if (*endptr == '\0') {
1637 if (val) *val = v;
1638 return SWIG_Str2NumCast(SWIG_OK)SWIG_AddCast((0));
1639 }
1640 }
1641 }
1642 if (!dispatch) {
1643 double d;
1644 int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d)( obj, &d));
1645 if (SWIG_IsOK(res)(res >= 0) && SWIG_CanCastAsInteger(&d, LONG_MIN(-9223372036854775807L -1L), LONG_MAX9223372036854775807L)) {
1646 if (val) *val = (long)(d);
1647 return res;
1648 }
1649 }
1650 }
1651 return SWIG_TypeError-5;
1652}
1653
1654
1655SWIGINTERNstatic __attribute__ ((__unused__)) int
1656SWIG_AsVal_int SWIG_PERL_DECL_ARGS_2(SV * obj, int *val)( SV * obj, int *val)
1657{
1658 long v;
1659 int res = SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(obj, &v)( obj, &v);
1660 if (SWIG_IsOK(res)(res >= 0)) {
1661 if ((v < INT_MIN(-2147483647 -1) || v > INT_MAX2147483647)) {
1662 return SWIG_OverflowError-7;
1663 } else {
1664 if (val) *val = static_cast< int >(v);
1665 }
1666 }
1667 return res;
1668}
1669
1670
1671SWIGINTERNINLINEstatic __attribute__ ((__unused__)) inline SV *
1672SWIG_From_long SWIG_PERL_DECL_ARGS_1(long value)( long value)
1673{
1674 SV *obj = sv_newmortal()Perl_sv_newmortal(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)))
;
1675 sv_setiv(obj, (IV) value)Perl_sv_setiv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), obj,(IV) value)
;
1676 return obj;
1677}
1678
1679
1680SWIGINTERNINLINEstatic __attribute__ ((__unused__)) inline SV *
1681SWIG_From_int SWIG_PERL_DECL_ARGS_1(int value)( int value)
1682{
1683 return SWIG_From_long SWIG_PERL_CALL_ARGS_1(value)( value);
1684}
1685
1686
1687SWIGINTERNINLINEstatic __attribute__ ((__unused__)) inline SV *
1688SWIG_FromCharPtrAndSize(const char* carray, size_t size)
1689{
1690 SV *obj = sv_newmortal()Perl_sv_newmortal(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)))
;
1691 if (carray) {
1692 sv_setpvn(obj, carray, size)Perl_sv_setpvn(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), obj,carray,size)
;
1693 } else {
1694 sv_setsv(obj, &PL_sv_undef)Perl_sv_setsv_flags(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), obj,&(((PerlInterpreter *)pthread_getspecific(PL_thr_key
))->Isv_undef),2|0)
;
1695 }
1696 return obj;
1697}
1698
1699
1700SWIGINTERNINLINEstatic __attribute__ ((__unused__)) inline SV *
1701SWIG_FromCharPtr(const char *cptr)
1702{
1703 return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
1704}
1705
1706#ifdef __cplusplus199711L
1707extern "C" {
1708#endif
1709
1710#ifdef PERL_OBJECT
1711#define MAGIC_CLASS _wrap_MCAST_var::
1712class _wrap_MCAST_var : public CPerlObj {
1713public:
1714#else
1715#define MAGIC_CLASS
1716#endif
1717SWIGCLASS_STATICstatic __attribute__ ((__unused__)) int swig_magic_readonly(pTHX_PerlInterpreter* my_perl , SV *SWIGUNUSEDPARM(sv), MAGIC *SWIGUNUSEDPARM(mg)) {
1718 MAGIC_PPERL
1719 croakPerl_croak_nocontext("Value is read-only.");
1720 return 0;
1721}
1722
1723
1724#ifdef PERL_OBJECT
1725};
1726#endif
1727
1728#ifdef __cplusplus199711L
1729}
1730#endif
1731
1732#ifdef __cplusplus199711L
1733extern "C" {
1734#endif
1735XS(_wrap_new_McastHandle)extern "C" void _wrap_new_McastHandle(PerlInterpreter* my_perl
, CV* cv)
{
1736 {
1737 char *arg1 = (char *) 0 ;
1738 int arg2 ;
1739 int arg3 ;
1740 McastHandle *result = 0 ;
1741 int res1 ;
1742 char *buf1 = 0 ;
1743 int alloc1 = 0 ;
1744 int val2 ;
1745 int ecode2 = 0 ;
1746 int val3 ;
1747 int ecode3 = 0 ;
1748 int argvi = 0;
1749 dXSARGSSV **sp = (((PerlInterpreter *)pthread_getspecific(PL_thr_key
))->Istack_sp); I32 ax = (*(((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Imarkstack_ptr)--); SV **mark = (((PerlInterpreter
*)pthread_getspecific(PL_thr_key))->Istack_base) + ax++; I32
items = (I32)(sp - mark)
;
1750
1751 if ((items < 3) || (items > 3)) {
1752 SWIG_croak("Usage: new_McastHandle(host,port,flags);"){ Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(-3), "Usage: new_McastHandle(host,port,flags);"
); goto fail; }
;
1753 }
1754 res1 = SWIG_AsCharPtrAndSize(ST(0)(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Istack_base
)[ax + (0)]
, &buf1, NULL__null, &alloc1);
1755 if (!SWIG_IsOK(res1)(res1 >= 0)) {
1756 SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_McastHandle" "', argument " "1"" of type '" "char const *""'")do { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(((res1 != (-1)) ? res1 : -5)), "in method '"
"new_McastHandle" "', argument " "1"" of type '" "char const *"
"'"); goto fail; } while(0)
;
1757 }
1758 arg1 = reinterpret_cast< char * >(buf1);
1759 ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2)( (((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Istack_base
)[ax + (1)], &val2)
;
1760 if (!SWIG_IsOK(ecode2)(ecode2 >= 0)) {
1761 SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_McastHandle" "', argument " "2"" of type '" "int""'")do { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(((ecode2 != (-1)) ? ecode2 : -5)), "in method '"
"new_McastHandle" "', argument " "2"" of type '" "int""'"); goto
fail; } while(0)
;
1762 }
1763 arg2 = static_cast< int >(val2);
1764 ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3)( (((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Istack_base
)[ax + (2)], &val3)
;
1765 if (!SWIG_IsOK(ecode3)(ecode3 >= 0)) {
1766 SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_McastHandle" "', argument " "3"" of type '" "int""'")do { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(((ecode3 != (-1)) ? ecode3 : -5)), "in method '"
"new_McastHandle" "', argument " "3"" of type '" "int""'"); goto
fail; } while(0)
;
1767 }
1768 arg3 = static_cast< int >(val3);
1769 result = (McastHandle *)new McastHandle((char const *)arg1,arg2,arg3);
1770 ST(argvi)(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Istack_base
)[ax + (argvi)]
= SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_McastHandle, SWIG_OWNER | SWIG_SHADOW)SWIG_Perl_NewPointerObj( const_cast< void * >(static_cast
< const void * >(result)), swig_types[0], 0x1 | 0x1 <<
1)
; argvi++ ;
1771 if (alloc1 == SWIG_NEWOBJ((0) | ((1 << 8) << 1))) delete[] buf1;
1772
1773
1774 XSRETURN(argvi)do { const IV tmpXSoff = (argvi); (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_sp) = (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_base) + ax + (tmpXSoff - 1); return;
} while (0)
;
1775 fail:
1776 if (alloc1 == SWIG_NEWOBJ((0) | ((1 << 8) << 1))) delete[] buf1;
1777
1778
1779 SWIG_croak_null()Perl_croak_nocontext(((char*)__null));
1780 }
1781}
1782
1783
1784XS(_wrap_delete_McastHandle)extern "C" void _wrap_delete_McastHandle(PerlInterpreter* my_perl
, CV* cv)
{
1785 {
1786 McastHandle *arg1 = (McastHandle *) 0 ;
1787 void *argp1 = 0 ;
1788 int res1 = 0 ;
1789 int argvi = 0;
1790 dXSARGSSV **sp = (((PerlInterpreter *)pthread_getspecific(PL_thr_key
))->Istack_sp); I32 ax = (*(((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Imarkstack_ptr)--); SV **mark = (((PerlInterpreter
*)pthread_getspecific(PL_thr_key))->Istack_base) + ax++; I32
items = (I32)(sp - mark)
;
1791
1792 if ((items < 1) || (items > 1)) {
1793 SWIG_croak("Usage: delete_McastHandle(self);"){ Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(-3), "Usage: delete_McastHandle(self);"
); goto fail; }
;
1794 }
1795 res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_McastHandle, SWIG_POINTER_DISOWN | 0 )SWIG_Perl_ConvertPtr( (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_base)[ax + (0)], &argp1, swig_types
[0], 0x1 | 0)
;
1796 if (!SWIG_IsOK(res1)(res1 >= 0)) {
1797 SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_McastHandle" "', argument " "1"" of type '" "McastHandle *""'")do { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(((res1 != (-1)) ? res1 : -5)), "in method '"
"delete_McastHandle" "', argument " "1"" of type '" "McastHandle *"
"'"); goto fail; } while(0)
;
1798 }
1799 arg1 = reinterpret_cast< McastHandle * >(argp1);
1800 delete arg1;
1801
1802
1803
1804 XSRETURN(argvi)do { const IV tmpXSoff = (argvi); (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_sp) = (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_base) + ax + (tmpXSoff - 1); return;
} while (0)
;
1805 fail:
1806
1807 SWIG_croak_null()Perl_croak_nocontext(((char*)__null));
1808 }
1809}
1810
1811
1812XS(_wrap_McastHandle_send)extern "C" void _wrap_McastHandle_send(PerlInterpreter* my_perl
, CV* cv)
{
1813 {
1814 McastHandle *arg1 = (McastHandle *) 0 ;
1815 char *arg2 = (char *) 0 ;
1816 int result;
1817 void *argp1 = 0 ;
1818 int res1 = 0 ;
1819 int res2 ;
1820 char *buf2 = 0 ;
1821 int alloc2 = 0 ;
1822 int argvi = 0;
1823 dXSARGSSV **sp = (((PerlInterpreter *)pthread_getspecific(PL_thr_key
))->Istack_sp); I32 ax = (*(((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Imarkstack_ptr)--); SV **mark = (((PerlInterpreter
*)pthread_getspecific(PL_thr_key))->Istack_base) + ax++; I32
items = (I32)(sp - mark)
;
1824
1825 if ((items < 2) || (items > 2)) {
1826 SWIG_croak("Usage: McastHandle_send(self,data);"){ Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(-3), "Usage: McastHandle_send(self,data);"
); goto fail; }
;
1827 }
1828 res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_McastHandle, 0 | 0 )SWIG_Perl_ConvertPtr( (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_base)[ax + (0)], &argp1, swig_types
[0], 0 | 0)
;
1829 if (!SWIG_IsOK(res1)(res1 >= 0)) {
1830 SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "McastHandle_send" "', argument " "1"" of type '" "McastHandle *""'")do { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(((res1 != (-1)) ? res1 : -5)), "in method '"
"McastHandle_send" "', argument " "1"" of type '" "McastHandle *"
"'"); goto fail; } while(0)
;
1831 }
1832 arg1 = reinterpret_cast< McastHandle * >(argp1);
1833 res2 = SWIG_AsCharPtrAndSize(ST(1)(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Istack_base
)[ax + (1)]
, &buf2, NULL__null, &alloc2);
1834 if (!SWIG_IsOK(res2)(res2 >= 0)) {
1835 SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "McastHandle_send" "', argument " "2"" of type '" "char const *""'")do { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(((res2 != (-1)) ? res2 : -5)), "in method '"
"McastHandle_send" "', argument " "2"" of type '" "char const *"
"'"); goto fail; } while(0)
;
1836 }
1837 arg2 = reinterpret_cast< char * >(buf2);
1838 result = (int)(arg1)->send((char const *)arg2);
1839 ST(argvi)(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Istack_base
)[ax + (argvi)]
= SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result))( static_cast< int >(result)); argvi++ ;
1840
1841 if (alloc2 == SWIG_NEWOBJ((0) | ((1 << 8) << 1))) delete[] buf2;
1842 XSRETURN(argvi)do { const IV tmpXSoff = (argvi); (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_sp) = (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_base) + ax + (tmpXSoff - 1); return;
} while (0)
;
1843 fail:
1844
1845 if (alloc2 == SWIG_NEWOBJ((0) | ((1 << 8) << 1))) delete[] buf2;
1846 SWIG_croak_null()Perl_croak_nocontext(((char*)__null));
1847 }
1848}
1849
1850
1851XS(_wrap_McastHandle_recv)extern "C" void _wrap_McastHandle_recv(PerlInterpreter* my_perl
, CV* cv)
{
1852 {
1853 McastHandle *arg1 = (McastHandle *) 0 ;
1854 int arg2 = (int) 0 ;
1855 char *result = 0 ;
1856 void *argp1 = 0 ;
1857 int res1 = 0 ;
1858 int val2 ;
1859 int ecode2 = 0 ;
1860 int argvi = 0;
1861 dXSARGSSV **sp = (((PerlInterpreter *)pthread_getspecific(PL_thr_key
))->Istack_sp); I32 ax = (*(((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Imarkstack_ptr)--); SV **mark = (((PerlInterpreter
*)pthread_getspecific(PL_thr_key))->Istack_base) + ax++; I32
items = (I32)(sp - mark)
;
1862
1863 if ((items < 1) || (items > 2)) {
1864 SWIG_croak("Usage: McastHandle_recv(self,ms);"){ Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(-3), "Usage: McastHandle_recv(self,ms);"
); goto fail; }
;
1865 }
1866 res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_McastHandle, 0 | 0 )SWIG_Perl_ConvertPtr( (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_base)[ax + (0)], &argp1, swig_types
[0], 0 | 0)
;
1867 if (!SWIG_IsOK(res1)(res1 >= 0)) {
1868 SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "McastHandle_recv" "', argument " "1"" of type '" "McastHandle *""'")do { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(((res1 != (-1)) ? res1 : -5)), "in method '"
"McastHandle_recv" "', argument " "1"" of type '" "McastHandle *"
"'"); goto fail; } while(0)
;
1869 }
1870 arg1 = reinterpret_cast< McastHandle * >(argp1);
1871 if (items > 1) {
1872 ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2)( (((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Istack_base
)[ax + (1)], &val2)
;
1873 if (!SWIG_IsOK(ecode2)(ecode2 >= 0)) {
1874 SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "McastHandle_recv" "', argument " "2"" of type '" "int""'")do { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(((ecode2 != (-1)) ? ecode2 : -5)), "in method '"
"McastHandle_recv" "', argument " "2"" of type '" "int""'");
goto fail; } while(0)
;
1875 }
1876 arg2 = static_cast< int >(val2);
1877 }
1878 result = (char *)(arg1)->recv(arg2);
1879 ST(argvi)(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Istack_base
)[ax + (argvi)]
= SWIG_FromCharPtr((const char *)result); argvi++ ;
1880
1881
1882 XSRETURN(argvi)do { const IV tmpXSoff = (argvi); (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_sp) = (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_base) + ax + (tmpXSoff - 1); return;
} while (0)
;
1883 fail:
1884
1885
1886 SWIG_croak_null()Perl_croak_nocontext(((char*)__null));
1887 }
1888}
1889
1890
1891XS(_wrap_McastHandle_filenum)extern "C" void _wrap_McastHandle_filenum(PerlInterpreter* my_perl
, CV* cv)
{
1892 {
1893 McastHandle *arg1 = (McastHandle *) 0 ;
1894 int result;
1895 void *argp1 = 0 ;
1896 int res1 = 0 ;
1897 int argvi = 0;
1898 dXSARGSSV **sp = (((PerlInterpreter *)pthread_getspecific(PL_thr_key
))->Istack_sp); I32 ax = (*(((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Imarkstack_ptr)--); SV **mark = (((PerlInterpreter
*)pthread_getspecific(PL_thr_key))->Istack_base) + ax++; I32
items = (I32)(sp - mark)
;
1899
1900 if ((items < 1) || (items > 1)) {
1901 SWIG_croak("Usage: McastHandle_filenum(self);"){ Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(-3), "Usage: McastHandle_filenum(self);"
); goto fail; }
;
1902 }
1903 res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_McastHandle, 0 | 0 )SWIG_Perl_ConvertPtr( (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_base)[ax + (0)], &argp1, swig_types
[0], 0 | 0)
;
1904 if (!SWIG_IsOK(res1)(res1 >= 0)) {
1905 SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "McastHandle_filenum" "', argument " "1"" of type '" "McastHandle *""'")do { Perl_sv_setpvf_nocontext(((0+((((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Ierrgv))->sv_u.svu_gp)->gp_sv),"%s %s\n"
, SWIG_Perl_ErrorType(((res1 != (-1)) ? res1 : -5)), "in method '"
"McastHandle_filenum" "', argument " "1"" of type '" "McastHandle *"
"'"); goto fail; } while(0)
;
1906 }
1907 arg1 = reinterpret_cast< McastHandle * >(argp1);
1908 result = (int)(arg1)->filenum();
1909 ST(argvi)(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Istack_base
)[ax + (argvi)]
= SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result))( static_cast< int >(result)); argvi++ ;
1910
1911 XSRETURN(argvi)do { const IV tmpXSoff = (argvi); (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_sp) = (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_base) + ax + (tmpXSoff - 1); return;
} while (0)
;
1912 fail:
1913
1914 SWIG_croak_null()Perl_croak_nocontext(((char*)__null));
1915 }
1916}
1917
1918
1919
1920/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
1921
1922static swig_type_info _swigt__p_McastHandle = {"_p_McastHandle", "McastHandle *", 0, 0, (void*)"MCAST::McastHandle", 0};
1923static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
1924
1925static swig_type_info *swig_type_initial[] = {
1926 &_swigt__p_McastHandle,
1927 &_swigt__p_char,
1928};
1929
1930static swig_cast_info _swigc__p_McastHandle[] = { {&_swigt__p_McastHandle, 0, 0, 0},{0, 0, 0, 0}};
1931static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
1932
1933static swig_cast_info *swig_cast_initial[] = {
1934 _swigc__p_McastHandle,
1935 _swigc__p_char,
1936};
1937
1938
1939/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
1940
1941static swig_constant_info swig_constants[] = {
1942{0,0,0,0,0,0}
1943};
1944#ifdef __cplusplus199711L
1945}
1946#endif
1947static swig_variable_info swig_variables[] = {
1948{0,0,0,0}
1949};
1950static swig_command_info swig_commands[] = {
1951{"MCASTc::new_McastHandle", _wrap_new_McastHandle},
1952{"MCASTc::delete_McastHandle", _wrap_delete_McastHandle},
1953{"MCASTc::McastHandle_send", _wrap_McastHandle_send},
1954{"MCASTc::McastHandle_recv", _wrap_McastHandle_recv},
1955{"MCASTc::McastHandle_filenum", _wrap_McastHandle_filenum},
1956{0,0}
1957};
1958/* -----------------------------------------------------------------------------
1959 * Type initialization:
1960 * This problem is tough by the requirement that no dynamic
1961 * memory is used. Also, since swig_type_info structures store pointers to
1962 * swig_cast_info structures and swig_cast_info structures store pointers back
1963 * to swig_type_info structures, we need some lookup code at initialization.
1964 * The idea is that swig generates all the structures that are needed.
1965 * The runtime then collects these partially filled structures.
1966 * The SWIG_InitializeModule function takes these initial arrays out of
1967 * swig_module, and does all the lookup, filling in the swig_module.types
1968 * array with the correct data and linking the correct swig_cast_info
1969 * structures together.
1970 *
1971 * The generated swig_type_info structures are assigned staticly to an initial
1972 * array. We just loop through that array, and handle each type individually.
1973 * First we lookup if this type has been already loaded, and if so, use the
1974 * loaded structure instead of the generated one. Then we have to fill in the
1975 * cast linked list. The cast data is initially stored in something like a
1976 * two-dimensional array. Each row corresponds to a type (there are the same
1977 * number of rows as there are in the swig_type_initial array). Each entry in
1978 * a column is one of the swig_cast_info structures for that type.
1979 * The cast_initial array is actually an array of arrays, because each row has
1980 * a variable number of columns. So to actually build the cast linked list,
1981 * we find the array of casts associated with the type, and loop through it
1982 * adding the casts to the list. The one last trick we need to do is making
1983 * sure the type pointer in the swig_cast_info struct is correct.
1984 *
1985 * First off, we lookup the cast->type name to see if it is already loaded.
1986 * There are three cases to handle:
1987 * 1) If the cast->type has already been loaded AND the type we are adding
1988 * casting info to has not been loaded (it is in this module), THEN we
1989 * replace the cast->type pointer with the type pointer that has already
1990 * been loaded.
1991 * 2) If BOTH types (the one we are adding casting info to, and the
1992 * cast->type) are loaded, THEN the cast info has already been loaded by
1993 * the previous module so we just ignore it.
1994 * 3) Finally, if cast->type has not already been loaded, then we add that
1995 * swig_cast_info to the linked list (because the cast->type) pointer will
1996 * be correct.
1997 * ----------------------------------------------------------------------------- */
1998
1999#ifdef __cplusplus199711L
2000extern "C" {
2001#if 0
2002} /* c-mode */
2003#endif
2004#endif
2005
2006#if 0
2007#define SWIGRUNTIME_DEBUG
2008#endif
2009
2010
2011SWIGRUNTIMEstatic __attribute__ ((__unused__)) void
2012SWIG_InitializeModule(void *clientdata) {
2013 size_t i;
2014 swig_module_info *module_head, *iter;
2015 int found, init;
2016
2017 clientdata = clientdata;
2018
2019 /* check to see if the circular list has been setup, if not, set it up */
2020 if (swig_module.next==0) {
2021 /* Initialize the swig_module */
2022 swig_module.type_initial = swig_type_initial;
2023 swig_module.cast_initial = swig_cast_initial;
2024 swig_module.next = &swig_module;
2025 init = 1;
2026 } else {
2027 init = 0;
2028 }
2029
2030 /* Try and load any already created modules */
2031 module_head = SWIG_GetModule(clientdata)SWIG_Perl_GetModule();
2032 if (!module_head) {
2033 /* This is the first module loaded for this interpreter */
2034 /* so set the swig module into the interpreter */
2035 SWIG_SetModule(clientdata, &swig_module)SWIG_Perl_SetModule(&swig_module);
2036 module_head = &swig_module;
2037 } else {
2038 /* the interpreter has loaded a SWIG module, but has it loaded this one? */
2039 found=0;
2040 iter=module_head;
2041 do {
2042 if (iter==&swig_module) {
2043 found=1;
2044 break;
2045 }
2046 iter=iter->next;
2047 } while (iter!= module_head);
2048
2049 /* if the is found in the list, then all is done and we may leave */
2050 if (found) return;
2051 /* otherwise we must add out module into the list */
2052 swig_module.next = module_head->next;
2053 module_head->next = &swig_module;
2054 }
2055
2056 /* When multiple interpeters are used, a module could have already been initialized in
2057 a different interpreter, but not yet have a pointer in this interpreter.
2058 In this case, we do not want to continue adding types... everything should be
2059 set up already */
2060 if (init == 0) return;
2061
2062 /* Now work on filling in swig_module.types */
2063#ifdef SWIGRUNTIME_DEBUG
2064 printf("SWIG_InitializeModule: size %d\n", swig_module.size);
2065#endif
2066 for (i = 0; i < swig_module.size; ++i) {
2067 swig_type_info *type = 0;
2068 swig_type_info *ret;
2069 swig_cast_info *cast;
2070
2071#ifdef SWIGRUNTIME_DEBUG
2072 printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
2073#endif
2074
2075 /* if there is another module already loaded */
2076 if (swig_module.next != &swig_module) {
2077 type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
2078 }
2079 if (type) {
2080 /* Overwrite clientdata field */
2081#ifdef SWIGRUNTIME_DEBUG
2082 printf("SWIG_InitializeModule: found type %s\n", type->name);
2083#endif
2084 if (swig_module.type_initial[i]->clientdata) {
2085 type->clientdata = swig_module.type_initial[i]->clientdata;
2086#ifdef SWIGRUNTIME_DEBUG
2087 printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
2088#endif
2089 }
2090 } else {
2091 type = swig_module.type_initial[i];
2092 }
2093
2094 /* Insert casting types */
2095 cast = swig_module.cast_initial[i];
2096 while (cast->type) {
2097 /* Don't need to add information already in the list */
2098 ret = 0;
2099#ifdef SWIGRUNTIME_DEBUG
2100 printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
2101#endif
2102 if (swig_module.next != &swig_module) {
2103 ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
2104#ifdef SWIGRUNTIME_DEBUG
2105 if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
2106#endif
2107 }
2108 if (ret) {
2109 if (type == swig_module.type_initial[i]) {
2110#ifdef SWIGRUNTIME_DEBUG
2111 printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
2112#endif
2113 cast->type = ret;
2114 ret = 0;
2115 } else {
2116 /* Check for casting already in the list */
2117 swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
2118#ifdef SWIGRUNTIME_DEBUG
2119 if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
2120#endif
2121 if (!ocast) ret = 0;
2122 }
2123 }
2124
2125 if (!ret) {
2126#ifdef SWIGRUNTIME_DEBUG
2127 printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
2128#endif
2129 if (type->cast) {
2130 type->cast->prev = cast;
2131 cast->next = type->cast;
2132 }
2133 type->cast = cast;
2134 }
2135 cast++;
2136 }
2137 /* Set entry in modules->types array equal to the type */
2138 swig_module.types[i] = type;
2139 }
2140 swig_module.types[i] = 0;
2141
2142#ifdef SWIGRUNTIME_DEBUG
2143 printf("**** SWIG_InitializeModule: Cast List ******\n");
2144 for (i = 0; i < swig_module.size; ++i) {
2145 int j = 0;
2146 swig_cast_info *cast = swig_module.cast_initial[i];
2147 printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
2148 while (cast->type) {
2149 printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
2150 cast++;
2151 ++j;
2152 }
2153 printf("---- Total casts: %d\n",j);
2154 }
2155 printf("**** SWIG_InitializeModule: Cast List ******\n");
2156#endif
2157}
2158
2159/* This function will propagate the clientdata field of type to
2160* any new swig_type_info structures that have been added into the list
2161* of equivalent types. It is like calling
2162* SWIG_TypeClientData(type, clientdata) a second time.
2163*/
2164SWIGRUNTIMEstatic __attribute__ ((__unused__)) void
2165SWIG_PropagateClientData(void) {
2166 size_t i;
2167 swig_cast_info *equiv;
2168 static int init_run = 0;
2169
2170 if (init_run) return;
2171 init_run = 1;
2172
2173 for (i = 0; i < swig_module.size; i++) {
2174 if (swig_module.types[i]->clientdata) {
2175 equiv = swig_module.types[i]->cast;
2176 while (equiv) {
2177 if (!equiv->converter) {
2178 if (equiv->type && !equiv->type->clientdata)
2179 SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
2180 }
2181 equiv = equiv->next;
2182 }
2183 }
2184 }
2185}
2186
2187#ifdef __cplusplus199711L
2188#if 0
2189{
2190 /* c-mode */
2191#endif
2192}
2193#endif
2194
2195
2196
2197#ifdef __cplusplus199711L
2198extern "C"
2199#endif
2200
2201XS(SWIG_init)extern "C" void boot_MCAST(PerlInterpreter* my_perl , CV* cv) {
2202 dXSARGSSV **sp = (((PerlInterpreter *)pthread_getspecific(PL_thr_key
))->Istack_sp); I32 ax = (*(((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Imarkstack_ptr)--); SV **mark = (((PerlInterpreter
*)pthread_getspecific(PL_thr_key))->Istack_base) + ax++; I32
items = (I32)(sp - mark)
;
2203 int i;
2204
2205 SWIG_InitializeModule(0);
2206
2207 /* Install commands */
2208 for (i = 0; swig_commands[i].name; i++) {
2209 newXS((char*) swig_commands[i].name,swig_commands[i].wrapper, (char*)__FILE__)Perl_newXS(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), (char*) swig_commands[i].name,swig_commands[i].wrapper,(char
*)"mcast/mcast_wrap.cpp")
;
2210 }
2211
2212 /* Install variables */
2213 for (i = 0; swig_variables[i].name; i++) {
2214 SV *sv;
2215 sv = get_sv((char*) swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI)Perl_get_sv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), (char*) swig_variables[i].name,(1) | 0x2 | 0x02)
;
2216 if (swig_variables[i].type) {
2217 SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0)SWIG_Perl_MakePtr( sv, (void *)1, *swig_variables[i].type, 0);
2218 } else {
2219 sv_setiv(sv,(IV) 0)Perl_sv_setiv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv,(IV) 0)
;
2220 }
2221 swig_create_magic(sv, (char *) swig_variables[i].name, swig_variables[i].set, swig_variables[i].get)_swig_create_magic(sv,(char *) swig_variables[i].name,swig_variables
[i].set,swig_variables[i].get)
;
2222 }
2223
2224 /* Install constant */
2225 for (i = 0; swig_constants[i].type; i++) {
2226 SV *sv;
2227 sv = get_sv((char*)swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI)Perl_get_sv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), (char*)swig_constants[i].name,(1) | 0x2 | 0x02)
;
2228 switch(swig_constants[i].type) {
2229 case SWIG_INT1:
2230 sv_setiv(sv, (IV) swig_constants[i].lvalue)Perl_sv_setiv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv,(IV) swig_constants[i].lvalue)
;
2231 break;
2232 case SWIG_FLOAT2:
2233 sv_setnv(sv, (double) swig_constants[i].dvalue)Perl_sv_setnv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv,(double) swig_constants[i].dvalue)
;
2234 break;
2235 case SWIG_STRING3:
2236 sv_setpv(sv, (char *) swig_constants[i].pvalue)Perl_sv_setpv(((PerlInterpreter *)pthread_getspecific(PL_thr_key
)), sv,(char *) swig_constants[i].pvalue)
;
2237 break;
2238 case SWIG_POINTER4:
2239 SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0)SWIG_Perl_MakePtr( sv, swig_constants[i].pvalue, *(swig_constants
[i].ptype), 0)
;
2240 break;
2241 case SWIG_BINARY5:
2242 SWIG_MakePackedObj(sv, swig_constants[i].pvalue, swig_constants[i].lvalue, *(swig_constants[i].ptype))SWIG_Perl_MakePackedObj( sv, swig_constants[i].pvalue, swig_constants
[i].lvalue, *(swig_constants[i].ptype))
;
2243 break;
2244 default:
2245 break;
2246 }
2247 SvREADONLY_on(sv)((sv)->sv_flags |= 0x08000000);
2248 }
2249
2250 SWIG_TypeClientData(SWIGTYPE_p_McastHandleswig_types[0], (void*) "MCAST::McastHandle");
2251 ST(0)(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Istack_base
)[ax + (0)]
= &PL_sv_yes(((PerlInterpreter *)pthread_getspecific(PL_thr_key))->Isv_yes
)
;
2252 XSRETURN(1)do { const IV tmpXSoff = (1); (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_sp) = (((PerlInterpreter *)pthread_getspecific
(PL_thr_key))->Istack_base) + ax + (tmpXSoff - 1); return;
} while (0)
;
2253}
2254