1*b2055c35SXin Li /* ----------------------------------------------------------------------------
2*b2055c35SXin Li * This file was automatically generated by SWIG (http://www.swig.org).
3*b2055c35SXin Li * Version 3.0.12
4*b2055c35SXin Li *
5*b2055c35SXin Li * This file is not intended to be easily readable and contains a number of
6*b2055c35SXin Li * coding conventions designed to improve portability and efficiency. Do not make
7*b2055c35SXin Li * changes to this file unless you know what you are doing--modify the SWIG
8*b2055c35SXin Li * interface file instead.
9*b2055c35SXin Li * ----------------------------------------------------------------------------- */
10*b2055c35SXin Li
11*b2055c35SXin Li #define SWIG_PYTHON_STRICT_BYTE_CHAR
12*b2055c35SXin Li
13*b2055c35SXin Li
14*b2055c35SXin Li
15*b2055c35SXin Li #ifndef SWIGPYTHON
16*b2055c35SXin Li #define SWIGPYTHON
17*b2055c35SXin Li #endif
18*b2055c35SXin Li
19*b2055c35SXin Li #define SWIG_PYTHON_DIRECTOR_NO_VTABLE
20*b2055c35SXin Li
21*b2055c35SXin Li /* -----------------------------------------------------------------------------
22*b2055c35SXin Li * This section contains generic SWIG labels for method/variable
23*b2055c35SXin Li * declarations/attributes, and other compiler dependent labels.
24*b2055c35SXin Li * ----------------------------------------------------------------------------- */
25*b2055c35SXin Li
26*b2055c35SXin Li /* template workaround for compilers that cannot correctly implement the C++ standard */
27*b2055c35SXin Li #ifndef SWIGTEMPLATEDISAMBIGUATOR
28*b2055c35SXin Li # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
29*b2055c35SXin Li # define SWIGTEMPLATEDISAMBIGUATOR template
30*b2055c35SXin Li # elif defined(__HP_aCC)
31*b2055c35SXin Li /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
32*b2055c35SXin Li /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
33*b2055c35SXin Li # define SWIGTEMPLATEDISAMBIGUATOR template
34*b2055c35SXin Li # else
35*b2055c35SXin Li # define SWIGTEMPLATEDISAMBIGUATOR
36*b2055c35SXin Li # endif
37*b2055c35SXin Li #endif
38*b2055c35SXin Li
39*b2055c35SXin Li /* inline attribute */
40*b2055c35SXin Li #ifndef SWIGINLINE
41*b2055c35SXin Li # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
42*b2055c35SXin Li # define SWIGINLINE inline
43*b2055c35SXin Li # else
44*b2055c35SXin Li # define SWIGINLINE
45*b2055c35SXin Li # endif
46*b2055c35SXin Li #endif
47*b2055c35SXin Li
48*b2055c35SXin Li /* attribute recognised by some compilers to avoid 'unused' warnings */
49*b2055c35SXin Li #ifndef SWIGUNUSED
50*b2055c35SXin Li # if defined(__GNUC__)
51*b2055c35SXin Li # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
52*b2055c35SXin Li # define SWIGUNUSED __attribute__ ((__unused__))
53*b2055c35SXin Li # else
54*b2055c35SXin Li # define SWIGUNUSED
55*b2055c35SXin Li # endif
56*b2055c35SXin Li # elif defined(__ICC)
57*b2055c35SXin Li # define SWIGUNUSED __attribute__ ((__unused__))
58*b2055c35SXin Li # else
59*b2055c35SXin Li # define SWIGUNUSED
60*b2055c35SXin Li # endif
61*b2055c35SXin Li #endif
62*b2055c35SXin Li
63*b2055c35SXin Li #ifndef SWIG_MSC_UNSUPPRESS_4505
64*b2055c35SXin Li # if defined(_MSC_VER)
65*b2055c35SXin Li # pragma warning(disable : 4505) /* unreferenced local function has been removed */
66*b2055c35SXin Li # endif
67*b2055c35SXin Li #endif
68*b2055c35SXin Li
69*b2055c35SXin Li #ifndef SWIGUNUSEDPARM
70*b2055c35SXin Li # ifdef __cplusplus
71*b2055c35SXin Li # define SWIGUNUSEDPARM(p)
72*b2055c35SXin Li # else
73*b2055c35SXin Li # define SWIGUNUSEDPARM(p) p SWIGUNUSED
74*b2055c35SXin Li # endif
75*b2055c35SXin Li #endif
76*b2055c35SXin Li
77*b2055c35SXin Li /* internal SWIG method */
78*b2055c35SXin Li #ifndef SWIGINTERN
79*b2055c35SXin Li # define SWIGINTERN static SWIGUNUSED
80*b2055c35SXin Li #endif
81*b2055c35SXin Li
82*b2055c35SXin Li /* internal inline SWIG method */
83*b2055c35SXin Li #ifndef SWIGINTERNINLINE
84*b2055c35SXin Li # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
85*b2055c35SXin Li #endif
86*b2055c35SXin Li
87*b2055c35SXin Li /* exporting methods */
88*b2055c35SXin Li #if defined(__GNUC__)
89*b2055c35SXin Li # if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
90*b2055c35SXin Li # ifndef GCC_HASCLASSVISIBILITY
91*b2055c35SXin Li # define GCC_HASCLASSVISIBILITY
92*b2055c35SXin Li # endif
93*b2055c35SXin Li # endif
94*b2055c35SXin Li #endif
95*b2055c35SXin Li
96*b2055c35SXin Li #ifndef SWIGEXPORT
97*b2055c35SXin Li # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
98*b2055c35SXin Li # if defined(STATIC_LINKED)
99*b2055c35SXin Li # define SWIGEXPORT
100*b2055c35SXin Li # else
101*b2055c35SXin Li # define SWIGEXPORT __declspec(dllexport)
102*b2055c35SXin Li # endif
103*b2055c35SXin Li # else
104*b2055c35SXin Li # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
105*b2055c35SXin Li # define SWIGEXPORT __attribute__ ((visibility("default")))
106*b2055c35SXin Li # else
107*b2055c35SXin Li # define SWIGEXPORT
108*b2055c35SXin Li # endif
109*b2055c35SXin Li # endif
110*b2055c35SXin Li #endif
111*b2055c35SXin Li
112*b2055c35SXin Li /* calling conventions for Windows */
113*b2055c35SXin Li #ifndef SWIGSTDCALL
114*b2055c35SXin Li # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
115*b2055c35SXin Li # define SWIGSTDCALL __stdcall
116*b2055c35SXin Li # else
117*b2055c35SXin Li # define SWIGSTDCALL
118*b2055c35SXin Li # endif
119*b2055c35SXin Li #endif
120*b2055c35SXin Li
121*b2055c35SXin Li /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
122*b2055c35SXin Li #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
123*b2055c35SXin Li # define _CRT_SECURE_NO_DEPRECATE
124*b2055c35SXin Li #endif
125*b2055c35SXin Li
126*b2055c35SXin Li /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
127*b2055c35SXin Li #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
128*b2055c35SXin Li # define _SCL_SECURE_NO_DEPRECATE
129*b2055c35SXin Li #endif
130*b2055c35SXin Li
131*b2055c35SXin Li /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
132*b2055c35SXin Li #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
133*b2055c35SXin Li # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
134*b2055c35SXin Li #endif
135*b2055c35SXin Li
136*b2055c35SXin Li /* Intel's compiler complains if a variable which was never initialised is
137*b2055c35SXin Li * cast to void, which is a common idiom which we use to indicate that we
138*b2055c35SXin Li * are aware a variable isn't used. So we just silence that warning.
139*b2055c35SXin Li * See: https://github.com/swig/swig/issues/192 for more discussion.
140*b2055c35SXin Li */
141*b2055c35SXin Li #ifdef __INTEL_COMPILER
142*b2055c35SXin Li # pragma warning disable 592
143*b2055c35SXin Li #endif
144*b2055c35SXin Li
145*b2055c35SXin Li
146*b2055c35SXin Li #if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG)
147*b2055c35SXin Li /* Use debug wrappers with the Python release dll */
148*b2055c35SXin Li # undef _DEBUG
149*b2055c35SXin Li # include <Python.h>
150*b2055c35SXin Li # define _DEBUG
151*b2055c35SXin Li #else
152*b2055c35SXin Li # include <Python.h>
153*b2055c35SXin Li #endif
154*b2055c35SXin Li
155*b2055c35SXin Li /* -----------------------------------------------------------------------------
156*b2055c35SXin Li * swigrun.swg
157*b2055c35SXin Li *
158*b2055c35SXin Li * This file contains generic C API SWIG runtime support for pointer
159*b2055c35SXin Li * type checking.
160*b2055c35SXin Li * ----------------------------------------------------------------------------- */
161*b2055c35SXin Li
162*b2055c35SXin Li /* This should only be incremented when either the layout of swig_type_info changes,
163*b2055c35SXin Li or for whatever reason, the runtime changes incompatibly */
164*b2055c35SXin Li #define SWIG_RUNTIME_VERSION "4"
165*b2055c35SXin Li
166*b2055c35SXin Li /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
167*b2055c35SXin Li #ifdef SWIG_TYPE_TABLE
168*b2055c35SXin Li # define SWIG_QUOTE_STRING(x) #x
169*b2055c35SXin Li # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
170*b2055c35SXin Li # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
171*b2055c35SXin Li #else
172*b2055c35SXin Li # define SWIG_TYPE_TABLE_NAME
173*b2055c35SXin Li #endif
174*b2055c35SXin Li
175*b2055c35SXin Li /*
176*b2055c35SXin Li You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
177*b2055c35SXin Li creating a static or dynamic library from the SWIG runtime code.
178*b2055c35SXin Li In 99.9% of the cases, SWIG just needs to declare them as 'static'.
179*b2055c35SXin Li
180*b2055c35SXin Li But only do this if strictly necessary, ie, if you have problems
181*b2055c35SXin Li with your compiler or suchlike.
182*b2055c35SXin Li */
183*b2055c35SXin Li
184*b2055c35SXin Li #ifndef SWIGRUNTIME
185*b2055c35SXin Li # define SWIGRUNTIME SWIGINTERN
186*b2055c35SXin Li #endif
187*b2055c35SXin Li
188*b2055c35SXin Li #ifndef SWIGRUNTIMEINLINE
189*b2055c35SXin Li # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
190*b2055c35SXin Li #endif
191*b2055c35SXin Li
192*b2055c35SXin Li /* Generic buffer size */
193*b2055c35SXin Li #ifndef SWIG_BUFFER_SIZE
194*b2055c35SXin Li # define SWIG_BUFFER_SIZE 1024
195*b2055c35SXin Li #endif
196*b2055c35SXin Li
197*b2055c35SXin Li /* Flags for pointer conversions */
198*b2055c35SXin Li #define SWIG_POINTER_DISOWN 0x1
199*b2055c35SXin Li #define SWIG_CAST_NEW_MEMORY 0x2
200*b2055c35SXin Li
201*b2055c35SXin Li /* Flags for new pointer objects */
202*b2055c35SXin Li #define SWIG_POINTER_OWN 0x1
203*b2055c35SXin Li
204*b2055c35SXin Li
205*b2055c35SXin Li /*
206*b2055c35SXin Li Flags/methods for returning states.
207*b2055c35SXin Li
208*b2055c35SXin Li The SWIG conversion methods, as ConvertPtr, return an integer
209*b2055c35SXin Li that tells if the conversion was successful or not. And if not,
210*b2055c35SXin Li an error code can be returned (see swigerrors.swg for the codes).
211*b2055c35SXin Li
212*b2055c35SXin Li Use the following macros/flags to set or process the returning
213*b2055c35SXin Li states.
214*b2055c35SXin Li
215*b2055c35SXin Li In old versions of SWIG, code such as the following was usually written:
216*b2055c35SXin Li
217*b2055c35SXin Li if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
218*b2055c35SXin Li // success code
219*b2055c35SXin Li } else {
220*b2055c35SXin Li //fail code
221*b2055c35SXin Li }
222*b2055c35SXin Li
223*b2055c35SXin Li Now you can be more explicit:
224*b2055c35SXin Li
225*b2055c35SXin Li int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
226*b2055c35SXin Li if (SWIG_IsOK(res)) {
227*b2055c35SXin Li // success code
228*b2055c35SXin Li } else {
229*b2055c35SXin Li // fail code
230*b2055c35SXin Li }
231*b2055c35SXin Li
232*b2055c35SXin Li which is the same really, but now you can also do
233*b2055c35SXin Li
234*b2055c35SXin Li Type *ptr;
235*b2055c35SXin Li int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
236*b2055c35SXin Li if (SWIG_IsOK(res)) {
237*b2055c35SXin Li // success code
238*b2055c35SXin Li if (SWIG_IsNewObj(res) {
239*b2055c35SXin Li ...
240*b2055c35SXin Li delete *ptr;
241*b2055c35SXin Li } else {
242*b2055c35SXin Li ...
243*b2055c35SXin Li }
244*b2055c35SXin Li } else {
245*b2055c35SXin Li // fail code
246*b2055c35SXin Li }
247*b2055c35SXin Li
248*b2055c35SXin Li I.e., now SWIG_ConvertPtr can return new objects and you can
249*b2055c35SXin Li identify the case and take care of the deallocation. Of course that
250*b2055c35SXin Li also requires SWIG_ConvertPtr to return new result values, such as
251*b2055c35SXin Li
252*b2055c35SXin Li int SWIG_ConvertPtr(obj, ptr,...) {
253*b2055c35SXin Li if (<obj is ok>) {
254*b2055c35SXin Li if (<need new object>) {
255*b2055c35SXin Li *ptr = <ptr to new allocated object>;
256*b2055c35SXin Li return SWIG_NEWOBJ;
257*b2055c35SXin Li } else {
258*b2055c35SXin Li *ptr = <ptr to old object>;
259*b2055c35SXin Li return SWIG_OLDOBJ;
260*b2055c35SXin Li }
261*b2055c35SXin Li } else {
262*b2055c35SXin Li return SWIG_BADOBJ;
263*b2055c35SXin Li }
264*b2055c35SXin Li }
265*b2055c35SXin Li
266*b2055c35SXin Li Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
267*b2055c35SXin Li more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
268*b2055c35SXin Li SWIG errors code.
269*b2055c35SXin Li
270*b2055c35SXin Li Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
271*b2055c35SXin Li allows to return the 'cast rank', for example, if you have this
272*b2055c35SXin Li
273*b2055c35SXin Li int food(double)
274*b2055c35SXin Li int fooi(int);
275*b2055c35SXin Li
276*b2055c35SXin Li and you call
277*b2055c35SXin Li
278*b2055c35SXin Li food(1) // cast rank '1' (1 -> 1.0)
279*b2055c35SXin Li fooi(1) // cast rank '0'
280*b2055c35SXin Li
281*b2055c35SXin Li just use the SWIG_AddCast()/SWIG_CheckState()
282*b2055c35SXin Li */
283*b2055c35SXin Li
284*b2055c35SXin Li #define SWIG_OK (0)
285*b2055c35SXin Li #define SWIG_ERROR (-1)
286*b2055c35SXin Li #define SWIG_IsOK(r) (r >= 0)
287*b2055c35SXin Li #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError)
288*b2055c35SXin Li
289*b2055c35SXin Li /* The CastRankLimit says how many bits are used for the cast rank */
290*b2055c35SXin Li #define SWIG_CASTRANKLIMIT (1 << 8)
291*b2055c35SXin Li /* The NewMask denotes the object was created (using new/malloc) */
292*b2055c35SXin Li #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1)
293*b2055c35SXin Li /* The TmpMask is for in/out typemaps that use temporal objects */
294*b2055c35SXin Li #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1)
295*b2055c35SXin Li /* Simple returning values */
296*b2055c35SXin Li #define SWIG_BADOBJ (SWIG_ERROR)
297*b2055c35SXin Li #define SWIG_OLDOBJ (SWIG_OK)
298*b2055c35SXin Li #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK)
299*b2055c35SXin Li #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK)
300*b2055c35SXin Li /* Check, add and del mask methods */
301*b2055c35SXin Li #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
302*b2055c35SXin Li #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
303*b2055c35SXin Li #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
304*b2055c35SXin Li #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
305*b2055c35SXin Li #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
306*b2055c35SXin Li #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
307*b2055c35SXin Li
308*b2055c35SXin Li /* Cast-Rank Mode */
309*b2055c35SXin Li #if defined(SWIG_CASTRANK_MODE)
310*b2055c35SXin Li # ifndef SWIG_TypeRank
311*b2055c35SXin Li # define SWIG_TypeRank unsigned long
312*b2055c35SXin Li # endif
313*b2055c35SXin Li # ifndef SWIG_MAXCASTRANK /* Default cast allowed */
314*b2055c35SXin Li # define SWIG_MAXCASTRANK (2)
315*b2055c35SXin Li # endif
316*b2055c35SXin Li # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1)
317*b2055c35SXin Li # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK)
SWIG_AddCast(int r)318*b2055c35SXin Li SWIGINTERNINLINE int SWIG_AddCast(int r) {
319*b2055c35SXin Li return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
320*b2055c35SXin Li }
SWIG_CheckState(int r)321*b2055c35SXin Li SWIGINTERNINLINE int SWIG_CheckState(int r) {
322*b2055c35SXin Li return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
323*b2055c35SXin Li }
324*b2055c35SXin Li #else /* no cast-rank mode */
325*b2055c35SXin Li # define SWIG_AddCast(r) (r)
326*b2055c35SXin Li # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
327*b2055c35SXin Li #endif
328*b2055c35SXin Li
329*b2055c35SXin Li
330*b2055c35SXin Li #include <string.h>
331*b2055c35SXin Li
332*b2055c35SXin Li #ifdef __cplusplus
333*b2055c35SXin Li extern "C" {
334*b2055c35SXin Li #endif
335*b2055c35SXin Li
336*b2055c35SXin Li typedef void *(*swig_converter_func)(void *, int *);
337*b2055c35SXin Li typedef struct swig_type_info *(*swig_dycast_func)(void **);
338*b2055c35SXin Li
339*b2055c35SXin Li /* Structure to store information on one type */
340*b2055c35SXin Li typedef struct swig_type_info {
341*b2055c35SXin Li const char *name; /* mangled name of this type */
342*b2055c35SXin Li const char *str; /* human readable name of this type */
343*b2055c35SXin Li swig_dycast_func dcast; /* dynamic cast function down a hierarchy */
344*b2055c35SXin Li struct swig_cast_info *cast; /* linked list of types that can cast into this type */
345*b2055c35SXin Li void *clientdata; /* language specific type data */
346*b2055c35SXin Li int owndata; /* flag if the structure owns the clientdata */
347*b2055c35SXin Li } swig_type_info;
348*b2055c35SXin Li
349*b2055c35SXin Li /* Structure to store a type and conversion function used for casting */
350*b2055c35SXin Li typedef struct swig_cast_info {
351*b2055c35SXin Li swig_type_info *type; /* pointer to type that is equivalent to this type */
352*b2055c35SXin Li swig_converter_func converter; /* function to cast the void pointers */
353*b2055c35SXin Li struct swig_cast_info *next; /* pointer to next cast in linked list */
354*b2055c35SXin Li struct swig_cast_info *prev; /* pointer to the previous cast */
355*b2055c35SXin Li } swig_cast_info;
356*b2055c35SXin Li
357*b2055c35SXin Li /* Structure used to store module information
358*b2055c35SXin Li * Each module generates one structure like this, and the runtime collects
359*b2055c35SXin Li * all of these structures and stores them in a circularly linked list.*/
360*b2055c35SXin Li typedef struct swig_module_info {
361*b2055c35SXin Li swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */
362*b2055c35SXin Li size_t size; /* Number of types in this module */
363*b2055c35SXin Li struct swig_module_info *next; /* Pointer to next element in circularly linked list */
364*b2055c35SXin Li swig_type_info **type_initial; /* Array of initially generated type structures */
365*b2055c35SXin Li swig_cast_info **cast_initial; /* Array of initially generated casting structures */
366*b2055c35SXin Li void *clientdata; /* Language specific module data */
367*b2055c35SXin Li } swig_module_info;
368*b2055c35SXin Li
369*b2055c35SXin Li /*
370*b2055c35SXin Li Compare two type names skipping the space characters, therefore
371*b2055c35SXin Li "char*" == "char *" and "Class<int>" == "Class<int >", etc.
372*b2055c35SXin Li
373*b2055c35SXin Li Return 0 when the two name types are equivalent, as in
374*b2055c35SXin Li strncmp, but skipping ' '.
375*b2055c35SXin Li */
376*b2055c35SXin Li SWIGRUNTIME int
SWIG_TypeNameComp(const char * f1,const char * l1,const char * f2,const char * l2)377*b2055c35SXin Li SWIG_TypeNameComp(const char *f1, const char *l1,
378*b2055c35SXin Li const char *f2, const char *l2) {
379*b2055c35SXin Li for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
380*b2055c35SXin Li while ((*f1 == ' ') && (f1 != l1)) ++f1;
381*b2055c35SXin Li while ((*f2 == ' ') && (f2 != l2)) ++f2;
382*b2055c35SXin Li if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
383*b2055c35SXin Li }
384*b2055c35SXin Li return (int)((l1 - f1) - (l2 - f2));
385*b2055c35SXin Li }
386*b2055c35SXin Li
387*b2055c35SXin Li /*
388*b2055c35SXin Li Check type equivalence in a name list like <name1>|<name2>|...
389*b2055c35SXin Li Return 0 if equal, -1 if nb < tb, 1 if nb > tb
390*b2055c35SXin Li */
391*b2055c35SXin Li SWIGRUNTIME int
SWIG_TypeCmp(const char * nb,const char * tb)392*b2055c35SXin Li SWIG_TypeCmp(const char *nb, const char *tb) {
393*b2055c35SXin Li int equiv = 1;
394*b2055c35SXin Li const char* te = tb + strlen(tb);
395*b2055c35SXin Li const char* ne = nb;
396*b2055c35SXin Li while (equiv != 0 && *ne) {
397*b2055c35SXin Li for (nb = ne; *ne; ++ne) {
398*b2055c35SXin Li if (*ne == '|') break;
399*b2055c35SXin Li }
400*b2055c35SXin Li equiv = SWIG_TypeNameComp(nb, ne, tb, te);
401*b2055c35SXin Li if (*ne) ++ne;
402*b2055c35SXin Li }
403*b2055c35SXin Li return equiv;
404*b2055c35SXin Li }
405*b2055c35SXin Li
406*b2055c35SXin Li /*
407*b2055c35SXin Li Check type equivalence in a name list like <name1>|<name2>|...
408*b2055c35SXin Li Return 0 if not equal, 1 if equal
409*b2055c35SXin Li */
410*b2055c35SXin Li SWIGRUNTIME int
SWIG_TypeEquiv(const char * nb,const char * tb)411*b2055c35SXin Li SWIG_TypeEquiv(const char *nb, const char *tb) {
412*b2055c35SXin Li return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
413*b2055c35SXin Li }
414*b2055c35SXin Li
415*b2055c35SXin Li /*
416*b2055c35SXin Li Check the typename
417*b2055c35SXin Li */
418*b2055c35SXin Li SWIGRUNTIME swig_cast_info *
SWIG_TypeCheck(const char * c,swig_type_info * ty)419*b2055c35SXin Li SWIG_TypeCheck(const char *c, swig_type_info *ty) {
420*b2055c35SXin Li if (ty) {
421*b2055c35SXin Li swig_cast_info *iter = ty->cast;
422*b2055c35SXin Li while (iter) {
423*b2055c35SXin Li if (strcmp(iter->type->name, c) == 0) {
424*b2055c35SXin Li if (iter == ty->cast)
425*b2055c35SXin Li return iter;
426*b2055c35SXin Li /* Move iter to the top of the linked list */
427*b2055c35SXin Li iter->prev->next = iter->next;
428*b2055c35SXin Li if (iter->next)
429*b2055c35SXin Li iter->next->prev = iter->prev;
430*b2055c35SXin Li iter->next = ty->cast;
431*b2055c35SXin Li iter->prev = 0;
432*b2055c35SXin Li if (ty->cast) ty->cast->prev = iter;
433*b2055c35SXin Li ty->cast = iter;
434*b2055c35SXin Li return iter;
435*b2055c35SXin Li }
436*b2055c35SXin Li iter = iter->next;
437*b2055c35SXin Li }
438*b2055c35SXin Li }
439*b2055c35SXin Li return 0;
440*b2055c35SXin Li }
441*b2055c35SXin Li
442*b2055c35SXin Li /*
443*b2055c35SXin Li Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
444*b2055c35SXin Li */
445*b2055c35SXin Li SWIGRUNTIME swig_cast_info *
SWIG_TypeCheckStruct(swig_type_info * from,swig_type_info * ty)446*b2055c35SXin Li SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
447*b2055c35SXin Li if (ty) {
448*b2055c35SXin Li swig_cast_info *iter = ty->cast;
449*b2055c35SXin Li while (iter) {
450*b2055c35SXin Li if (iter->type == from) {
451*b2055c35SXin Li if (iter == ty->cast)
452*b2055c35SXin Li return iter;
453*b2055c35SXin Li /* Move iter to the top of the linked list */
454*b2055c35SXin Li iter->prev->next = iter->next;
455*b2055c35SXin Li if (iter->next)
456*b2055c35SXin Li iter->next->prev = iter->prev;
457*b2055c35SXin Li iter->next = ty->cast;
458*b2055c35SXin Li iter->prev = 0;
459*b2055c35SXin Li if (ty->cast) ty->cast->prev = iter;
460*b2055c35SXin Li ty->cast = iter;
461*b2055c35SXin Li return iter;
462*b2055c35SXin Li }
463*b2055c35SXin Li iter = iter->next;
464*b2055c35SXin Li }
465*b2055c35SXin Li }
466*b2055c35SXin Li return 0;
467*b2055c35SXin Li }
468*b2055c35SXin Li
469*b2055c35SXin Li /*
470*b2055c35SXin Li Cast a pointer up an inheritance hierarchy
471*b2055c35SXin Li */
472*b2055c35SXin Li SWIGRUNTIMEINLINE void *
SWIG_TypeCast(swig_cast_info * ty,void * ptr,int * newmemory)473*b2055c35SXin Li SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
474*b2055c35SXin Li return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
475*b2055c35SXin Li }
476*b2055c35SXin Li
477*b2055c35SXin Li /*
478*b2055c35SXin Li Dynamic pointer casting. Down an inheritance hierarchy
479*b2055c35SXin Li */
480*b2055c35SXin Li SWIGRUNTIME swig_type_info *
SWIG_TypeDynamicCast(swig_type_info * ty,void ** ptr)481*b2055c35SXin Li SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
482*b2055c35SXin Li swig_type_info *lastty = ty;
483*b2055c35SXin Li if (!ty || !ty->dcast) return ty;
484*b2055c35SXin Li while (ty && (ty->dcast)) {
485*b2055c35SXin Li ty = (*ty->dcast)(ptr);
486*b2055c35SXin Li if (ty) lastty = ty;
487*b2055c35SXin Li }
488*b2055c35SXin Li return lastty;
489*b2055c35SXin Li }
490*b2055c35SXin Li
491*b2055c35SXin Li /*
492*b2055c35SXin Li Return the name associated with this type
493*b2055c35SXin Li */
494*b2055c35SXin Li SWIGRUNTIMEINLINE const char *
SWIG_TypeName(const swig_type_info * ty)495*b2055c35SXin Li SWIG_TypeName(const swig_type_info *ty) {
496*b2055c35SXin Li return ty->name;
497*b2055c35SXin Li }
498*b2055c35SXin Li
499*b2055c35SXin Li /*
500*b2055c35SXin Li Return the pretty name associated with this type,
501*b2055c35SXin Li that is an unmangled type name in a form presentable to the user.
502*b2055c35SXin Li */
503*b2055c35SXin Li SWIGRUNTIME const char *
SWIG_TypePrettyName(const swig_type_info * type)504*b2055c35SXin Li SWIG_TypePrettyName(const swig_type_info *type) {
505*b2055c35SXin Li /* The "str" field contains the equivalent pretty names of the
506*b2055c35SXin Li type, separated by vertical-bar characters. We choose
507*b2055c35SXin Li to print the last name, as it is often (?) the most
508*b2055c35SXin Li specific. */
509*b2055c35SXin Li if (!type) return NULL;
510*b2055c35SXin Li if (type->str != NULL) {
511*b2055c35SXin Li const char *last_name = type->str;
512*b2055c35SXin Li const char *s;
513*b2055c35SXin Li for (s = type->str; *s; s++)
514*b2055c35SXin Li if (*s == '|') last_name = s+1;
515*b2055c35SXin Li return last_name;
516*b2055c35SXin Li }
517*b2055c35SXin Li else
518*b2055c35SXin Li return type->name;
519*b2055c35SXin Li }
520*b2055c35SXin Li
521*b2055c35SXin Li /*
522*b2055c35SXin Li Set the clientdata field for a type
523*b2055c35SXin Li */
524*b2055c35SXin Li SWIGRUNTIME void
SWIG_TypeClientData(swig_type_info * ti,void * clientdata)525*b2055c35SXin Li SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
526*b2055c35SXin Li swig_cast_info *cast = ti->cast;
527*b2055c35SXin Li /* if (ti->clientdata == clientdata) return; */
528*b2055c35SXin Li ti->clientdata = clientdata;
529*b2055c35SXin Li
530*b2055c35SXin Li while (cast) {
531*b2055c35SXin Li if (!cast->converter) {
532*b2055c35SXin Li swig_type_info *tc = cast->type;
533*b2055c35SXin Li if (!tc->clientdata) {
534*b2055c35SXin Li SWIG_TypeClientData(tc, clientdata);
535*b2055c35SXin Li }
536*b2055c35SXin Li }
537*b2055c35SXin Li cast = cast->next;
538*b2055c35SXin Li }
539*b2055c35SXin Li }
540*b2055c35SXin Li SWIGRUNTIME void
SWIG_TypeNewClientData(swig_type_info * ti,void * clientdata)541*b2055c35SXin Li SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
542*b2055c35SXin Li SWIG_TypeClientData(ti, clientdata);
543*b2055c35SXin Li ti->owndata = 1;
544*b2055c35SXin Li }
545*b2055c35SXin Li
546*b2055c35SXin Li /*
547*b2055c35SXin Li Search for a swig_type_info structure only by mangled name
548*b2055c35SXin Li Search is a O(log #types)
549*b2055c35SXin Li
550*b2055c35SXin Li We start searching at module start, and finish searching when start == end.
551*b2055c35SXin Li Note: if start == end at the beginning of the function, we go all the way around
552*b2055c35SXin Li the circular list.
553*b2055c35SXin Li */
554*b2055c35SXin Li SWIGRUNTIME swig_type_info *
SWIG_MangledTypeQueryModule(swig_module_info * start,swig_module_info * end,const char * name)555*b2055c35SXin Li SWIG_MangledTypeQueryModule(swig_module_info *start,
556*b2055c35SXin Li swig_module_info *end,
557*b2055c35SXin Li const char *name) {
558*b2055c35SXin Li swig_module_info *iter = start;
559*b2055c35SXin Li do {
560*b2055c35SXin Li if (iter->size) {
561*b2055c35SXin Li size_t l = 0;
562*b2055c35SXin Li size_t r = iter->size - 1;
563*b2055c35SXin Li do {
564*b2055c35SXin Li /* since l+r >= 0, we can (>> 1) instead (/ 2) */
565*b2055c35SXin Li size_t i = (l + r) >> 1;
566*b2055c35SXin Li const char *iname = iter->types[i]->name;
567*b2055c35SXin Li if (iname) {
568*b2055c35SXin Li int compare = strcmp(name, iname);
569*b2055c35SXin Li if (compare == 0) {
570*b2055c35SXin Li return iter->types[i];
571*b2055c35SXin Li } else if (compare < 0) {
572*b2055c35SXin Li if (i) {
573*b2055c35SXin Li r = i - 1;
574*b2055c35SXin Li } else {
575*b2055c35SXin Li break;
576*b2055c35SXin Li }
577*b2055c35SXin Li } else if (compare > 0) {
578*b2055c35SXin Li l = i + 1;
579*b2055c35SXin Li }
580*b2055c35SXin Li } else {
581*b2055c35SXin Li break; /* should never happen */
582*b2055c35SXin Li }
583*b2055c35SXin Li } while (l <= r);
584*b2055c35SXin Li }
585*b2055c35SXin Li iter = iter->next;
586*b2055c35SXin Li } while (iter != end);
587*b2055c35SXin Li return 0;
588*b2055c35SXin Li }
589*b2055c35SXin Li
590*b2055c35SXin Li /*
591*b2055c35SXin Li Search for a swig_type_info structure for either a mangled name or a human readable name.
592*b2055c35SXin Li It first searches the mangled names of the types, which is a O(log #types)
593*b2055c35SXin Li If a type is not found it then searches the human readable names, which is O(#types).
594*b2055c35SXin Li
595*b2055c35SXin Li We start searching at module start, and finish searching when start == end.
596*b2055c35SXin Li Note: if start == end at the beginning of the function, we go all the way around
597*b2055c35SXin Li the circular list.
598*b2055c35SXin Li */
599*b2055c35SXin Li SWIGRUNTIME swig_type_info *
SWIG_TypeQueryModule(swig_module_info * start,swig_module_info * end,const char * name)600*b2055c35SXin Li SWIG_TypeQueryModule(swig_module_info *start,
601*b2055c35SXin Li swig_module_info *end,
602*b2055c35SXin Li const char *name) {
603*b2055c35SXin Li /* STEP 1: Search the name field using binary search */
604*b2055c35SXin Li swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
605*b2055c35SXin Li if (ret) {
606*b2055c35SXin Li return ret;
607*b2055c35SXin Li } else {
608*b2055c35SXin Li /* STEP 2: If the type hasn't been found, do a complete search
609*b2055c35SXin Li of the str field (the human readable name) */
610*b2055c35SXin Li swig_module_info *iter = start;
611*b2055c35SXin Li do {
612*b2055c35SXin Li size_t i = 0;
613*b2055c35SXin Li for (; i < iter->size; ++i) {
614*b2055c35SXin Li if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
615*b2055c35SXin Li return iter->types[i];
616*b2055c35SXin Li }
617*b2055c35SXin Li iter = iter->next;
618*b2055c35SXin Li } while (iter != end);
619*b2055c35SXin Li }
620*b2055c35SXin Li
621*b2055c35SXin Li /* neither found a match */
622*b2055c35SXin Li return 0;
623*b2055c35SXin Li }
624*b2055c35SXin Li
625*b2055c35SXin Li /*
626*b2055c35SXin Li Pack binary data into a string
627*b2055c35SXin Li */
628*b2055c35SXin Li SWIGRUNTIME char *
SWIG_PackData(char * c,void * ptr,size_t sz)629*b2055c35SXin Li SWIG_PackData(char *c, void *ptr, size_t sz) {
630*b2055c35SXin Li static const char hex[17] = "0123456789abcdef";
631*b2055c35SXin Li const unsigned char *u = (unsigned char *) ptr;
632*b2055c35SXin Li const unsigned char *eu = u + sz;
633*b2055c35SXin Li for (; u != eu; ++u) {
634*b2055c35SXin Li unsigned char uu = *u;
635*b2055c35SXin Li *(c++) = hex[(uu & 0xf0) >> 4];
636*b2055c35SXin Li *(c++) = hex[uu & 0xf];
637*b2055c35SXin Li }
638*b2055c35SXin Li return c;
639*b2055c35SXin Li }
640*b2055c35SXin Li
641*b2055c35SXin Li /*
642*b2055c35SXin Li Unpack binary data from a string
643*b2055c35SXin Li */
644*b2055c35SXin Li SWIGRUNTIME const char *
SWIG_UnpackData(const char * c,void * ptr,size_t sz)645*b2055c35SXin Li SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
646*b2055c35SXin Li unsigned char *u = (unsigned char *) ptr;
647*b2055c35SXin Li const unsigned char *eu = u + sz;
648*b2055c35SXin Li for (; u != eu; ++u) {
649*b2055c35SXin Li char d = *(c++);
650*b2055c35SXin Li unsigned char uu;
651*b2055c35SXin Li if ((d >= '0') && (d <= '9'))
652*b2055c35SXin Li uu = (unsigned char)((d - '0') << 4);
653*b2055c35SXin Li else if ((d >= 'a') && (d <= 'f'))
654*b2055c35SXin Li uu = (unsigned char)((d - ('a'-10)) << 4);
655*b2055c35SXin Li else
656*b2055c35SXin Li return (char *) 0;
657*b2055c35SXin Li d = *(c++);
658*b2055c35SXin Li if ((d >= '0') && (d <= '9'))
659*b2055c35SXin Li uu |= (unsigned char)(d - '0');
660*b2055c35SXin Li else if ((d >= 'a') && (d <= 'f'))
661*b2055c35SXin Li uu |= (unsigned char)(d - ('a'-10));
662*b2055c35SXin Li else
663*b2055c35SXin Li return (char *) 0;
664*b2055c35SXin Li *u = uu;
665*b2055c35SXin Li }
666*b2055c35SXin Li return c;
667*b2055c35SXin Li }
668*b2055c35SXin Li
669*b2055c35SXin Li /*
670*b2055c35SXin Li Pack 'void *' into a string buffer.
671*b2055c35SXin Li */
672*b2055c35SXin Li SWIGRUNTIME char *
SWIG_PackVoidPtr(char * buff,void * ptr,const char * name,size_t bsz)673*b2055c35SXin Li SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
674*b2055c35SXin Li char *r = buff;
675*b2055c35SXin Li if ((2*sizeof(void *) + 2) > bsz) return 0;
676*b2055c35SXin Li *(r++) = '_';
677*b2055c35SXin Li r = SWIG_PackData(r,&ptr,sizeof(void *));
678*b2055c35SXin Li if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
679*b2055c35SXin Li strcpy(r,name);
680*b2055c35SXin Li return buff;
681*b2055c35SXin Li }
682*b2055c35SXin Li
683*b2055c35SXin Li SWIGRUNTIME const char *
SWIG_UnpackVoidPtr(const char * c,void ** ptr,const char * name)684*b2055c35SXin Li SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
685*b2055c35SXin Li if (*c != '_') {
686*b2055c35SXin Li if (strcmp(c,"NULL") == 0) {
687*b2055c35SXin Li *ptr = (void *) 0;
688*b2055c35SXin Li return name;
689*b2055c35SXin Li } else {
690*b2055c35SXin Li return 0;
691*b2055c35SXin Li }
692*b2055c35SXin Li }
693*b2055c35SXin Li return SWIG_UnpackData(++c,ptr,sizeof(void *));
694*b2055c35SXin Li }
695*b2055c35SXin Li
696*b2055c35SXin Li SWIGRUNTIME char *
SWIG_PackDataName(char * buff,void * ptr,size_t sz,const char * name,size_t bsz)697*b2055c35SXin Li SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
698*b2055c35SXin Li char *r = buff;
699*b2055c35SXin Li size_t lname = (name ? strlen(name) : 0);
700*b2055c35SXin Li if ((2*sz + 2 + lname) > bsz) return 0;
701*b2055c35SXin Li *(r++) = '_';
702*b2055c35SXin Li r = SWIG_PackData(r,ptr,sz);
703*b2055c35SXin Li if (lname) {
704*b2055c35SXin Li strncpy(r,name,lname+1);
705*b2055c35SXin Li } else {
706*b2055c35SXin Li *r = 0;
707*b2055c35SXin Li }
708*b2055c35SXin Li return buff;
709*b2055c35SXin Li }
710*b2055c35SXin Li
711*b2055c35SXin Li SWIGRUNTIME const char *
SWIG_UnpackDataName(const char * c,void * ptr,size_t sz,const char * name)712*b2055c35SXin Li SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
713*b2055c35SXin Li if (*c != '_') {
714*b2055c35SXin Li if (strcmp(c,"NULL") == 0) {
715*b2055c35SXin Li memset(ptr,0,sz);
716*b2055c35SXin Li return name;
717*b2055c35SXin Li } else {
718*b2055c35SXin Li return 0;
719*b2055c35SXin Li }
720*b2055c35SXin Li }
721*b2055c35SXin Li return SWIG_UnpackData(++c,ptr,sz);
722*b2055c35SXin Li }
723*b2055c35SXin Li
724*b2055c35SXin Li #ifdef __cplusplus
725*b2055c35SXin Li }
726*b2055c35SXin Li #endif
727*b2055c35SXin Li
728*b2055c35SXin Li /* Errors in SWIG */
729*b2055c35SXin Li #define SWIG_UnknownError -1
730*b2055c35SXin Li #define SWIG_IOError -2
731*b2055c35SXin Li #define SWIG_RuntimeError -3
732*b2055c35SXin Li #define SWIG_IndexError -4
733*b2055c35SXin Li #define SWIG_TypeError -5
734*b2055c35SXin Li #define SWIG_DivisionByZero -6
735*b2055c35SXin Li #define SWIG_OverflowError -7
736*b2055c35SXin Li #define SWIG_SyntaxError -8
737*b2055c35SXin Li #define SWIG_ValueError -9
738*b2055c35SXin Li #define SWIG_SystemError -10
739*b2055c35SXin Li #define SWIG_AttributeError -11
740*b2055c35SXin Li #define SWIG_MemoryError -12
741*b2055c35SXin Li #define SWIG_NullReferenceError -13
742*b2055c35SXin Li
743*b2055c35SXin Li
744*b2055c35SXin Li
745*b2055c35SXin Li /* Compatibility macros for Python 3 */
746*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
747*b2055c35SXin Li
748*b2055c35SXin Li #define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type)
749*b2055c35SXin Li #define PyInt_Check(x) PyLong_Check(x)
750*b2055c35SXin Li #define PyInt_AsLong(x) PyLong_AsLong(x)
751*b2055c35SXin Li #define PyInt_FromLong(x) PyLong_FromLong(x)
752*b2055c35SXin Li #define PyInt_FromSize_t(x) PyLong_FromSize_t(x)
753*b2055c35SXin Li #define PyString_Check(name) PyBytes_Check(name)
754*b2055c35SXin Li #define PyString_FromString(x) PyUnicode_FromString(x)
755*b2055c35SXin Li #define PyString_FromStringAndSize(x, y) PyBytes_FromStringAndSize(x, y)
756*b2055c35SXin Li #define PyString_Format(fmt, args) PyUnicode_Format(fmt, args)
757*b2055c35SXin Li #define PyString_AsString(str) PyBytes_AsString(str)
758*b2055c35SXin Li #define PyString_Size(str) PyBytes_Size(str)
759*b2055c35SXin Li #define PyString_InternFromString(key) PyUnicode_InternFromString(key)
760*b2055c35SXin Li #define Py_TPFLAGS_HAVE_CLASS Py_TPFLAGS_BASETYPE
761*b2055c35SXin Li #define PyString_AS_STRING(x) PyUnicode_AS_STRING(x)
762*b2055c35SXin Li #define _PyLong_FromSsize_t(x) PyLong_FromSsize_t(x)
763*b2055c35SXin Li
764*b2055c35SXin Li #endif
765*b2055c35SXin Li
766*b2055c35SXin Li #ifndef Py_TYPE
767*b2055c35SXin Li # define Py_TYPE(op) ((op)->ob_type)
768*b2055c35SXin Li #endif
769*b2055c35SXin Li
770*b2055c35SXin Li /* SWIG APIs for compatibility of both Python 2 & 3 */
771*b2055c35SXin Li
772*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
773*b2055c35SXin Li # define SWIG_Python_str_FromFormat PyUnicode_FromFormat
774*b2055c35SXin Li #else
775*b2055c35SXin Li # define SWIG_Python_str_FromFormat PyString_FromFormat
776*b2055c35SXin Li #endif
777*b2055c35SXin Li
778*b2055c35SXin Li
779*b2055c35SXin Li /* Warning: This function will allocate a new string in Python 3,
780*b2055c35SXin Li * so please call SWIG_Python_str_DelForPy3(x) to free the space.
781*b2055c35SXin Li */
782*b2055c35SXin Li SWIGINTERN char*
SWIG_Python_str_AsChar(PyObject * str)783*b2055c35SXin Li SWIG_Python_str_AsChar(PyObject *str)
784*b2055c35SXin Li {
785*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
786*b2055c35SXin Li char *cstr;
787*b2055c35SXin Li char *newstr;
788*b2055c35SXin Li Py_ssize_t len;
789*b2055c35SXin Li str = PyUnicode_AsUTF8String(str);
790*b2055c35SXin Li PyBytes_AsStringAndSize(str, &cstr, &len);
791*b2055c35SXin Li newstr = (char *) malloc(len+1);
792*b2055c35SXin Li memcpy(newstr, cstr, len+1);
793*b2055c35SXin Li Py_XDECREF(str);
794*b2055c35SXin Li return newstr;
795*b2055c35SXin Li #else
796*b2055c35SXin Li return PyString_AsString(str);
797*b2055c35SXin Li #endif
798*b2055c35SXin Li }
799*b2055c35SXin Li
800*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
801*b2055c35SXin Li # define SWIG_Python_str_DelForPy3(x) free( (void*) (x) )
802*b2055c35SXin Li #else
803*b2055c35SXin Li # define SWIG_Python_str_DelForPy3(x)
804*b2055c35SXin Li #endif
805*b2055c35SXin Li
806*b2055c35SXin Li
807*b2055c35SXin Li SWIGINTERN PyObject*
SWIG_Python_str_FromChar(const char * c)808*b2055c35SXin Li SWIG_Python_str_FromChar(const char *c)
809*b2055c35SXin Li {
810*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
811*b2055c35SXin Li return PyUnicode_FromString(c);
812*b2055c35SXin Li #else
813*b2055c35SXin Li return PyString_FromString(c);
814*b2055c35SXin Li #endif
815*b2055c35SXin Li }
816*b2055c35SXin Li
817*b2055c35SXin Li /* Add PyOS_snprintf for old Pythons */
818*b2055c35SXin Li #if PY_VERSION_HEX < 0x02020000
819*b2055c35SXin Li # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM)
820*b2055c35SXin Li # define PyOS_snprintf _snprintf
821*b2055c35SXin Li # else
822*b2055c35SXin Li # define PyOS_snprintf snprintf
823*b2055c35SXin Li # endif
824*b2055c35SXin Li #endif
825*b2055c35SXin Li
826*b2055c35SXin Li /* A crude PyString_FromFormat implementation for old Pythons */
827*b2055c35SXin Li #if PY_VERSION_HEX < 0x02020000
828*b2055c35SXin Li
829*b2055c35SXin Li #ifndef SWIG_PYBUFFER_SIZE
830*b2055c35SXin Li # define SWIG_PYBUFFER_SIZE 1024
831*b2055c35SXin Li #endif
832*b2055c35SXin Li
833*b2055c35SXin Li static PyObject *
PyString_FromFormat(const char * fmt,...)834*b2055c35SXin Li PyString_FromFormat(const char *fmt, ...) {
835*b2055c35SXin Li va_list ap;
836*b2055c35SXin Li char buf[SWIG_PYBUFFER_SIZE * 2];
837*b2055c35SXin Li int res;
838*b2055c35SXin Li va_start(ap, fmt);
839*b2055c35SXin Li res = vsnprintf(buf, sizeof(buf), fmt, ap);
840*b2055c35SXin Li va_end(ap);
841*b2055c35SXin Li return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf);
842*b2055c35SXin Li }
843*b2055c35SXin Li #endif
844*b2055c35SXin Li
845*b2055c35SXin Li #ifndef PyObject_DEL
846*b2055c35SXin Li # define PyObject_DEL PyObject_Del
847*b2055c35SXin Li #endif
848*b2055c35SXin Li
849*b2055c35SXin Li /* A crude PyExc_StopIteration exception for old Pythons */
850*b2055c35SXin Li #if PY_VERSION_HEX < 0x02020000
851*b2055c35SXin Li # ifndef PyExc_StopIteration
852*b2055c35SXin Li # define PyExc_StopIteration PyExc_RuntimeError
853*b2055c35SXin Li # endif
854*b2055c35SXin Li # ifndef PyObject_GenericGetAttr
855*b2055c35SXin Li # define PyObject_GenericGetAttr 0
856*b2055c35SXin Li # endif
857*b2055c35SXin Li #endif
858*b2055c35SXin Li
859*b2055c35SXin Li /* Py_NotImplemented is defined in 2.1 and up. */
860*b2055c35SXin Li #if PY_VERSION_HEX < 0x02010000
861*b2055c35SXin Li # ifndef Py_NotImplemented
862*b2055c35SXin Li # define Py_NotImplemented PyExc_RuntimeError
863*b2055c35SXin Li # endif
864*b2055c35SXin Li #endif
865*b2055c35SXin Li
866*b2055c35SXin Li /* A crude PyString_AsStringAndSize implementation for old Pythons */
867*b2055c35SXin Li #if PY_VERSION_HEX < 0x02010000
868*b2055c35SXin Li # ifndef PyString_AsStringAndSize
869*b2055c35SXin Li # define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;}
870*b2055c35SXin Li # endif
871*b2055c35SXin Li #endif
872*b2055c35SXin Li
873*b2055c35SXin Li /* PySequence_Size for old Pythons */
874*b2055c35SXin Li #if PY_VERSION_HEX < 0x02000000
875*b2055c35SXin Li # ifndef PySequence_Size
876*b2055c35SXin Li # define PySequence_Size PySequence_Length
877*b2055c35SXin Li # endif
878*b2055c35SXin Li #endif
879*b2055c35SXin Li
880*b2055c35SXin Li /* PyBool_FromLong for old Pythons */
881*b2055c35SXin Li #if PY_VERSION_HEX < 0x02030000
882*b2055c35SXin Li static
PyBool_FromLong(long ok)883*b2055c35SXin Li PyObject *PyBool_FromLong(long ok)
884*b2055c35SXin Li {
885*b2055c35SXin Li PyObject *result = ok ? Py_True : Py_False;
886*b2055c35SXin Li Py_INCREF(result);
887*b2055c35SXin Li return result;
888*b2055c35SXin Li }
889*b2055c35SXin Li #endif
890*b2055c35SXin Li
891*b2055c35SXin Li /* Py_ssize_t for old Pythons */
892*b2055c35SXin Li /* This code is as recommended by: */
893*b2055c35SXin Li /* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */
894*b2055c35SXin Li #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
895*b2055c35SXin Li typedef int Py_ssize_t;
896*b2055c35SXin Li # define PY_SSIZE_T_MAX INT_MAX
897*b2055c35SXin Li # define PY_SSIZE_T_MIN INT_MIN
898*b2055c35SXin Li typedef inquiry lenfunc;
899*b2055c35SXin Li typedef intargfunc ssizeargfunc;
900*b2055c35SXin Li typedef intintargfunc ssizessizeargfunc;
901*b2055c35SXin Li typedef intobjargproc ssizeobjargproc;
902*b2055c35SXin Li typedef intintobjargproc ssizessizeobjargproc;
903*b2055c35SXin Li typedef getreadbufferproc readbufferproc;
904*b2055c35SXin Li typedef getwritebufferproc writebufferproc;
905*b2055c35SXin Li typedef getsegcountproc segcountproc;
906*b2055c35SXin Li typedef getcharbufferproc charbufferproc;
PyNumber_AsSsize_t(PyObject * x,void * SWIGUNUSEDPARM (exc))907*b2055c35SXin Li static long PyNumber_AsSsize_t (PyObject *x, void *SWIGUNUSEDPARM(exc))
908*b2055c35SXin Li {
909*b2055c35SXin Li long result = 0;
910*b2055c35SXin Li PyObject *i = PyNumber_Int(x);
911*b2055c35SXin Li if (i) {
912*b2055c35SXin Li result = PyInt_AsLong(i);
913*b2055c35SXin Li Py_DECREF(i);
914*b2055c35SXin Li }
915*b2055c35SXin Li return result;
916*b2055c35SXin Li }
917*b2055c35SXin Li #endif
918*b2055c35SXin Li
919*b2055c35SXin Li #if PY_VERSION_HEX < 0x02050000
920*b2055c35SXin Li #define PyInt_FromSize_t(x) PyInt_FromLong((long)x)
921*b2055c35SXin Li #endif
922*b2055c35SXin Li
923*b2055c35SXin Li #if PY_VERSION_HEX < 0x02040000
924*b2055c35SXin Li #define Py_VISIT(op) \
925*b2055c35SXin Li do { \
926*b2055c35SXin Li if (op) { \
927*b2055c35SXin Li int vret = visit((op), arg); \
928*b2055c35SXin Li if (vret) \
929*b2055c35SXin Li return vret; \
930*b2055c35SXin Li } \
931*b2055c35SXin Li } while (0)
932*b2055c35SXin Li #endif
933*b2055c35SXin Li
934*b2055c35SXin Li #if PY_VERSION_HEX < 0x02030000
935*b2055c35SXin Li typedef struct {
936*b2055c35SXin Li PyTypeObject type;
937*b2055c35SXin Li PyNumberMethods as_number;
938*b2055c35SXin Li PyMappingMethods as_mapping;
939*b2055c35SXin Li PySequenceMethods as_sequence;
940*b2055c35SXin Li PyBufferProcs as_buffer;
941*b2055c35SXin Li PyObject *name, *slots;
942*b2055c35SXin Li } PyHeapTypeObject;
943*b2055c35SXin Li #endif
944*b2055c35SXin Li
945*b2055c35SXin Li #if PY_VERSION_HEX < 0x02030000
946*b2055c35SXin Li typedef destructor freefunc;
947*b2055c35SXin Li #endif
948*b2055c35SXin Li
949*b2055c35SXin Li #if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 6) || \
950*b2055c35SXin Li (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION > 0) || \
951*b2055c35SXin Li (PY_MAJOR_VERSION > 3))
952*b2055c35SXin Li # define SWIGPY_USE_CAPSULE
953*b2055c35SXin Li # define SWIGPY_CAPSULE_NAME ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME)
954*b2055c35SXin Li #endif
955*b2055c35SXin Li
956*b2055c35SXin Li #if PY_VERSION_HEX < 0x03020000
957*b2055c35SXin Li #define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type)
958*b2055c35SXin Li #define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name)
959*b2055c35SXin Li #define Py_hash_t long
960*b2055c35SXin Li #endif
961*b2055c35SXin Li
962*b2055c35SXin Li /* -----------------------------------------------------------------------------
963*b2055c35SXin Li * error manipulation
964*b2055c35SXin Li * ----------------------------------------------------------------------------- */
965*b2055c35SXin Li
966*b2055c35SXin Li SWIGRUNTIME PyObject*
SWIG_Python_ErrorType(int code)967*b2055c35SXin Li SWIG_Python_ErrorType(int code) {
968*b2055c35SXin Li PyObject* type = 0;
969*b2055c35SXin Li switch(code) {
970*b2055c35SXin Li case SWIG_MemoryError:
971*b2055c35SXin Li type = PyExc_MemoryError;
972*b2055c35SXin Li break;
973*b2055c35SXin Li case SWIG_IOError:
974*b2055c35SXin Li type = PyExc_IOError;
975*b2055c35SXin Li break;
976*b2055c35SXin Li case SWIG_RuntimeError:
977*b2055c35SXin Li type = PyExc_RuntimeError;
978*b2055c35SXin Li break;
979*b2055c35SXin Li case SWIG_IndexError:
980*b2055c35SXin Li type = PyExc_IndexError;
981*b2055c35SXin Li break;
982*b2055c35SXin Li case SWIG_TypeError:
983*b2055c35SXin Li type = PyExc_TypeError;
984*b2055c35SXin Li break;
985*b2055c35SXin Li case SWIG_DivisionByZero:
986*b2055c35SXin Li type = PyExc_ZeroDivisionError;
987*b2055c35SXin Li break;
988*b2055c35SXin Li case SWIG_OverflowError:
989*b2055c35SXin Li type = PyExc_OverflowError;
990*b2055c35SXin Li break;
991*b2055c35SXin Li case SWIG_SyntaxError:
992*b2055c35SXin Li type = PyExc_SyntaxError;
993*b2055c35SXin Li break;
994*b2055c35SXin Li case SWIG_ValueError:
995*b2055c35SXin Li type = PyExc_ValueError;
996*b2055c35SXin Li break;
997*b2055c35SXin Li case SWIG_SystemError:
998*b2055c35SXin Li type = PyExc_SystemError;
999*b2055c35SXin Li break;
1000*b2055c35SXin Li case SWIG_AttributeError:
1001*b2055c35SXin Li type = PyExc_AttributeError;
1002*b2055c35SXin Li break;
1003*b2055c35SXin Li default:
1004*b2055c35SXin Li type = PyExc_RuntimeError;
1005*b2055c35SXin Li }
1006*b2055c35SXin Li return type;
1007*b2055c35SXin Li }
1008*b2055c35SXin Li
1009*b2055c35SXin Li
1010*b2055c35SXin Li SWIGRUNTIME void
SWIG_Python_AddErrorMsg(const char * mesg)1011*b2055c35SXin Li SWIG_Python_AddErrorMsg(const char* mesg)
1012*b2055c35SXin Li {
1013*b2055c35SXin Li PyObject *type = 0;
1014*b2055c35SXin Li PyObject *value = 0;
1015*b2055c35SXin Li PyObject *traceback = 0;
1016*b2055c35SXin Li
1017*b2055c35SXin Li if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback);
1018*b2055c35SXin Li if (value) {
1019*b2055c35SXin Li char *tmp;
1020*b2055c35SXin Li PyObject *old_str = PyObject_Str(value);
1021*b2055c35SXin Li PyErr_Clear();
1022*b2055c35SXin Li Py_XINCREF(type);
1023*b2055c35SXin Li
1024*b2055c35SXin Li PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg);
1025*b2055c35SXin Li SWIG_Python_str_DelForPy3(tmp);
1026*b2055c35SXin Li Py_DECREF(old_str);
1027*b2055c35SXin Li Py_DECREF(value);
1028*b2055c35SXin Li } else {
1029*b2055c35SXin Li PyErr_SetString(PyExc_RuntimeError, mesg);
1030*b2055c35SXin Li }
1031*b2055c35SXin Li }
1032*b2055c35SXin Li
1033*b2055c35SXin Li #if defined(SWIG_PYTHON_NO_THREADS)
1034*b2055c35SXin Li # if defined(SWIG_PYTHON_THREADS)
1035*b2055c35SXin Li # undef SWIG_PYTHON_THREADS
1036*b2055c35SXin Li # endif
1037*b2055c35SXin Li #endif
1038*b2055c35SXin Li #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */
1039*b2055c35SXin Li # if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL)
1040*b2055c35SXin Li # if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */
1041*b2055c35SXin Li # define SWIG_PYTHON_USE_GIL
1042*b2055c35SXin Li # endif
1043*b2055c35SXin Li # endif
1044*b2055c35SXin Li # if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */
1045*b2055c35SXin Li # ifndef SWIG_PYTHON_INITIALIZE_THREADS
1046*b2055c35SXin Li # define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads()
1047*b2055c35SXin Li # endif
1048*b2055c35SXin Li # ifdef __cplusplus /* C++ code */
1049*b2055c35SXin Li class SWIG_Python_Thread_Block {
1050*b2055c35SXin Li bool status;
1051*b2055c35SXin Li PyGILState_STATE state;
1052*b2055c35SXin Li public:
end()1053*b2055c35SXin Li void end() { if (status) { PyGILState_Release(state); status = false;} }
SWIG_Python_Thread_Block()1054*b2055c35SXin Li SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {}
~SWIG_Python_Thread_Block()1055*b2055c35SXin Li ~SWIG_Python_Thread_Block() { end(); }
1056*b2055c35SXin Li };
1057*b2055c35SXin Li class SWIG_Python_Thread_Allow {
1058*b2055c35SXin Li bool status;
1059*b2055c35SXin Li PyThreadState *save;
1060*b2055c35SXin Li public:
end()1061*b2055c35SXin Li void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
SWIG_Python_Thread_Allow()1062*b2055c35SXin Li SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
~SWIG_Python_Thread_Allow()1063*b2055c35SXin Li ~SWIG_Python_Thread_Allow() { end(); }
1064*b2055c35SXin Li };
1065*b2055c35SXin Li # define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block
1066*b2055c35SXin Li # define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end()
1067*b2055c35SXin Li # define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow
1068*b2055c35SXin Li # define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end()
1069*b2055c35SXin Li # else /* C code */
1070*b2055c35SXin Li # define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
1071*b2055c35SXin Li # define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block)
1072*b2055c35SXin Li # define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread()
1073*b2055c35SXin Li # define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow)
1074*b2055c35SXin Li # endif
1075*b2055c35SXin Li # else /* Old thread way, not implemented, user must provide it */
1076*b2055c35SXin Li # if !defined(SWIG_PYTHON_INITIALIZE_THREADS)
1077*b2055c35SXin Li # define SWIG_PYTHON_INITIALIZE_THREADS
1078*b2055c35SXin Li # endif
1079*b2055c35SXin Li # if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK)
1080*b2055c35SXin Li # define SWIG_PYTHON_THREAD_BEGIN_BLOCK
1081*b2055c35SXin Li # endif
1082*b2055c35SXin Li # if !defined(SWIG_PYTHON_THREAD_END_BLOCK)
1083*b2055c35SXin Li # define SWIG_PYTHON_THREAD_END_BLOCK
1084*b2055c35SXin Li # endif
1085*b2055c35SXin Li # if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW)
1086*b2055c35SXin Li # define SWIG_PYTHON_THREAD_BEGIN_ALLOW
1087*b2055c35SXin Li # endif
1088*b2055c35SXin Li # if !defined(SWIG_PYTHON_THREAD_END_ALLOW)
1089*b2055c35SXin Li # define SWIG_PYTHON_THREAD_END_ALLOW
1090*b2055c35SXin Li # endif
1091*b2055c35SXin Li # endif
1092*b2055c35SXin Li #else /* No thread support */
1093*b2055c35SXin Li # define SWIG_PYTHON_INITIALIZE_THREADS
1094*b2055c35SXin Li # define SWIG_PYTHON_THREAD_BEGIN_BLOCK
1095*b2055c35SXin Li # define SWIG_PYTHON_THREAD_END_BLOCK
1096*b2055c35SXin Li # define SWIG_PYTHON_THREAD_BEGIN_ALLOW
1097*b2055c35SXin Li # define SWIG_PYTHON_THREAD_END_ALLOW
1098*b2055c35SXin Li #endif
1099*b2055c35SXin Li
1100*b2055c35SXin Li /* -----------------------------------------------------------------------------
1101*b2055c35SXin Li * Python API portion that goes into the runtime
1102*b2055c35SXin Li * ----------------------------------------------------------------------------- */
1103*b2055c35SXin Li
1104*b2055c35SXin Li #ifdef __cplusplus
1105*b2055c35SXin Li extern "C" {
1106*b2055c35SXin Li #endif
1107*b2055c35SXin Li
1108*b2055c35SXin Li /* -----------------------------------------------------------------------------
1109*b2055c35SXin Li * Constant declarations
1110*b2055c35SXin Li * ----------------------------------------------------------------------------- */
1111*b2055c35SXin Li
1112*b2055c35SXin Li /* Constant Types */
1113*b2055c35SXin Li #define SWIG_PY_POINTER 4
1114*b2055c35SXin Li #define SWIG_PY_BINARY 5
1115*b2055c35SXin Li
1116*b2055c35SXin Li /* Constant information structure */
1117*b2055c35SXin Li typedef struct swig_const_info {
1118*b2055c35SXin Li int type;
1119*b2055c35SXin Li char *name;
1120*b2055c35SXin Li long lvalue;
1121*b2055c35SXin Li double dvalue;
1122*b2055c35SXin Li void *pvalue;
1123*b2055c35SXin Li swig_type_info **ptype;
1124*b2055c35SXin Li } swig_const_info;
1125*b2055c35SXin Li
1126*b2055c35SXin Li
1127*b2055c35SXin Li /* -----------------------------------------------------------------------------
1128*b2055c35SXin Li * Wrapper of PyInstanceMethod_New() used in Python 3
1129*b2055c35SXin Li * It is exported to the generated module, used for -fastproxy
1130*b2055c35SXin Li * ----------------------------------------------------------------------------- */
1131*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
SWIG_PyInstanceMethod_New(PyObject * SWIGUNUSEDPARM (self),PyObject * func)1132*b2055c35SXin Li SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func)
1133*b2055c35SXin Li {
1134*b2055c35SXin Li return PyInstanceMethod_New(func);
1135*b2055c35SXin Li }
1136*b2055c35SXin Li #else
SWIG_PyInstanceMethod_New(PyObject * SWIGUNUSEDPARM (self),PyObject * SWIGUNUSEDPARM (func))1137*b2055c35SXin Li SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(func))
1138*b2055c35SXin Li {
1139*b2055c35SXin Li return NULL;
1140*b2055c35SXin Li }
1141*b2055c35SXin Li #endif
1142*b2055c35SXin Li
1143*b2055c35SXin Li #ifdef __cplusplus
1144*b2055c35SXin Li }
1145*b2055c35SXin Li #endif
1146*b2055c35SXin Li
1147*b2055c35SXin Li
1148*b2055c35SXin Li /* -----------------------------------------------------------------------------
1149*b2055c35SXin Li * pyrun.swg
1150*b2055c35SXin Li *
1151*b2055c35SXin Li * This file contains the runtime support for Python modules
1152*b2055c35SXin Li * and includes code for managing global variables and pointer
1153*b2055c35SXin Li * type checking.
1154*b2055c35SXin Li *
1155*b2055c35SXin Li * ----------------------------------------------------------------------------- */
1156*b2055c35SXin Li
1157*b2055c35SXin Li /* Common SWIG API */
1158*b2055c35SXin Li
1159*b2055c35SXin Li /* for raw pointers */
1160*b2055c35SXin Li #define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
1161*b2055c35SXin Li #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags)
1162*b2055c35SXin Li #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
1163*b2055c35SXin Li
1164*b2055c35SXin Li #ifdef SWIGPYTHON_BUILTIN
1165*b2055c35SXin Li #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(self, ptr, type, flags)
1166*b2055c35SXin Li #else
1167*b2055c35SXin Li #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
1168*b2055c35SXin Li #endif
1169*b2055c35SXin Li
1170*b2055c35SXin Li #define SWIG_InternalNewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
1171*b2055c35SXin Li
1172*b2055c35SXin Li #define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty)
1173*b2055c35SXin Li #define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src)
1174*b2055c35SXin Li #define swig_owntype int
1175*b2055c35SXin Li
1176*b2055c35SXin Li /* for raw packed data */
1177*b2055c35SXin Li #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1178*b2055c35SXin Li #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type)
1179*b2055c35SXin Li
1180*b2055c35SXin Li /* for class or struct pointers */
1181*b2055c35SXin Li #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags)
1182*b2055c35SXin Li #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags)
1183*b2055c35SXin Li
1184*b2055c35SXin Li /* for C or C++ function pointers */
1185*b2055c35SXin Li #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
1186*b2055c35SXin Li #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(NULL, ptr, type, 0)
1187*b2055c35SXin Li
1188*b2055c35SXin Li /* for C++ member pointers, ie, member methods */
1189*b2055c35SXin Li #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1190*b2055c35SXin Li #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type)
1191*b2055c35SXin Li
1192*b2055c35SXin Li
1193*b2055c35SXin Li /* Runtime API */
1194*b2055c35SXin Li
1195*b2055c35SXin Li #define SWIG_GetModule(clientdata) SWIG_Python_GetModule(clientdata)
1196*b2055c35SXin Li #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer)
1197*b2055c35SXin Li #define SWIG_NewClientData(obj) SwigPyClientData_New(obj)
1198*b2055c35SXin Li
1199*b2055c35SXin Li #define SWIG_SetErrorObj SWIG_Python_SetErrorObj
1200*b2055c35SXin Li #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg
1201*b2055c35SXin Li #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code)
1202*b2055c35SXin Li #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg)
1203*b2055c35SXin Li #define SWIG_fail goto fail
1204*b2055c35SXin Li
1205*b2055c35SXin Li
1206*b2055c35SXin Li /* Runtime API implementation */
1207*b2055c35SXin Li
1208*b2055c35SXin Li /* Error manipulation */
1209*b2055c35SXin Li
1210*b2055c35SXin Li SWIGINTERN void
SWIG_Python_SetErrorObj(PyObject * errtype,PyObject * obj)1211*b2055c35SXin Li SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
1212*b2055c35SXin Li SWIG_PYTHON_THREAD_BEGIN_BLOCK;
1213*b2055c35SXin Li PyErr_SetObject(errtype, obj);
1214*b2055c35SXin Li Py_DECREF(obj);
1215*b2055c35SXin Li SWIG_PYTHON_THREAD_END_BLOCK;
1216*b2055c35SXin Li }
1217*b2055c35SXin Li
1218*b2055c35SXin Li SWIGINTERN void
SWIG_Python_SetErrorMsg(PyObject * errtype,const char * msg)1219*b2055c35SXin Li SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
1220*b2055c35SXin Li SWIG_PYTHON_THREAD_BEGIN_BLOCK;
1221*b2055c35SXin Li PyErr_SetString(errtype, msg);
1222*b2055c35SXin Li SWIG_PYTHON_THREAD_END_BLOCK;
1223*b2055c35SXin Li }
1224*b2055c35SXin Li
1225*b2055c35SXin Li #define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj)
1226*b2055c35SXin Li
1227*b2055c35SXin Li /* Set a constant value */
1228*b2055c35SXin Li
1229*b2055c35SXin Li #if defined(SWIGPYTHON_BUILTIN)
1230*b2055c35SXin Li
1231*b2055c35SXin Li SWIGINTERN void
SwigPyBuiltin_AddPublicSymbol(PyObject * seq,const char * key)1232*b2055c35SXin Li SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) {
1233*b2055c35SXin Li PyObject *s = PyString_InternFromString(key);
1234*b2055c35SXin Li PyList_Append(seq, s);
1235*b2055c35SXin Li Py_DECREF(s);
1236*b2055c35SXin Li }
1237*b2055c35SXin Li
1238*b2055c35SXin Li SWIGINTERN void
SWIG_Python_SetConstant(PyObject * d,PyObject * public_interface,const char * name,PyObject * obj)1239*b2055c35SXin Li SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) {
1240*b2055c35SXin Li #if PY_VERSION_HEX < 0x02030000
1241*b2055c35SXin Li PyDict_SetItemString(d, (char *)name, obj);
1242*b2055c35SXin Li #else
1243*b2055c35SXin Li PyDict_SetItemString(d, name, obj);
1244*b2055c35SXin Li #endif
1245*b2055c35SXin Li Py_DECREF(obj);
1246*b2055c35SXin Li if (public_interface)
1247*b2055c35SXin Li SwigPyBuiltin_AddPublicSymbol(public_interface, name);
1248*b2055c35SXin Li }
1249*b2055c35SXin Li
1250*b2055c35SXin Li #else
1251*b2055c35SXin Li
1252*b2055c35SXin Li SWIGINTERN void
SWIG_Python_SetConstant(PyObject * d,const char * name,PyObject * obj)1253*b2055c35SXin Li SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {
1254*b2055c35SXin Li #if PY_VERSION_HEX < 0x02030000
1255*b2055c35SXin Li PyDict_SetItemString(d, (char *)name, obj);
1256*b2055c35SXin Li #else
1257*b2055c35SXin Li PyDict_SetItemString(d, name, obj);
1258*b2055c35SXin Li #endif
1259*b2055c35SXin Li Py_DECREF(obj);
1260*b2055c35SXin Li }
1261*b2055c35SXin Li
1262*b2055c35SXin Li #endif
1263*b2055c35SXin Li
1264*b2055c35SXin Li /* Append a value to the result obj */
1265*b2055c35SXin Li
1266*b2055c35SXin Li SWIGINTERN PyObject*
SWIG_Python_AppendOutput(PyObject * result,PyObject * obj)1267*b2055c35SXin Li SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
1268*b2055c35SXin Li #if !defined(SWIG_PYTHON_OUTPUT_TUPLE)
1269*b2055c35SXin Li if (!result) {
1270*b2055c35SXin Li result = obj;
1271*b2055c35SXin Li } else if (result == Py_None) {
1272*b2055c35SXin Li Py_DECREF(result);
1273*b2055c35SXin Li result = obj;
1274*b2055c35SXin Li } else {
1275*b2055c35SXin Li if (!PyList_Check(result)) {
1276*b2055c35SXin Li PyObject *o2 = result;
1277*b2055c35SXin Li result = PyList_New(1);
1278*b2055c35SXin Li PyList_SetItem(result, 0, o2);
1279*b2055c35SXin Li }
1280*b2055c35SXin Li PyList_Append(result,obj);
1281*b2055c35SXin Li Py_DECREF(obj);
1282*b2055c35SXin Li }
1283*b2055c35SXin Li return result;
1284*b2055c35SXin Li #else
1285*b2055c35SXin Li PyObject* o2;
1286*b2055c35SXin Li PyObject* o3;
1287*b2055c35SXin Li if (!result) {
1288*b2055c35SXin Li result = obj;
1289*b2055c35SXin Li } else if (result == Py_None) {
1290*b2055c35SXin Li Py_DECREF(result);
1291*b2055c35SXin Li result = obj;
1292*b2055c35SXin Li } else {
1293*b2055c35SXin Li if (!PyTuple_Check(result)) {
1294*b2055c35SXin Li o2 = result;
1295*b2055c35SXin Li result = PyTuple_New(1);
1296*b2055c35SXin Li PyTuple_SET_ITEM(result, 0, o2);
1297*b2055c35SXin Li }
1298*b2055c35SXin Li o3 = PyTuple_New(1);
1299*b2055c35SXin Li PyTuple_SET_ITEM(o3, 0, obj);
1300*b2055c35SXin Li o2 = result;
1301*b2055c35SXin Li result = PySequence_Concat(o2, o3);
1302*b2055c35SXin Li Py_DECREF(o2);
1303*b2055c35SXin Li Py_DECREF(o3);
1304*b2055c35SXin Li }
1305*b2055c35SXin Li return result;
1306*b2055c35SXin Li #endif
1307*b2055c35SXin Li }
1308*b2055c35SXin Li
1309*b2055c35SXin Li /* Unpack the argument tuple */
1310*b2055c35SXin Li
1311*b2055c35SXin Li SWIGINTERN Py_ssize_t
SWIG_Python_UnpackTuple(PyObject * args,const char * name,Py_ssize_t min,Py_ssize_t max,PyObject ** objs)1312*b2055c35SXin Li SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
1313*b2055c35SXin Li {
1314*b2055c35SXin Li if (!args) {
1315*b2055c35SXin Li if (!min && !max) {
1316*b2055c35SXin Li return 1;
1317*b2055c35SXin Li } else {
1318*b2055c35SXin Li PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none",
1319*b2055c35SXin Li name, (min == max ? "" : "at least "), (int)min);
1320*b2055c35SXin Li return 0;
1321*b2055c35SXin Li }
1322*b2055c35SXin Li }
1323*b2055c35SXin Li if (!PyTuple_Check(args)) {
1324*b2055c35SXin Li if (min <= 1 && max >= 1) {
1325*b2055c35SXin Li Py_ssize_t i;
1326*b2055c35SXin Li objs[0] = args;
1327*b2055c35SXin Li for (i = 1; i < max; ++i) {
1328*b2055c35SXin Li objs[i] = 0;
1329*b2055c35SXin Li }
1330*b2055c35SXin Li return 2;
1331*b2055c35SXin Li }
1332*b2055c35SXin Li PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
1333*b2055c35SXin Li return 0;
1334*b2055c35SXin Li } else {
1335*b2055c35SXin Li Py_ssize_t l = PyTuple_GET_SIZE(args);
1336*b2055c35SXin Li if (l < min) {
1337*b2055c35SXin Li PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
1338*b2055c35SXin Li name, (min == max ? "" : "at least "), (int)min, (int)l);
1339*b2055c35SXin Li return 0;
1340*b2055c35SXin Li } else if (l > max) {
1341*b2055c35SXin Li PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
1342*b2055c35SXin Li name, (min == max ? "" : "at most "), (int)max, (int)l);
1343*b2055c35SXin Li return 0;
1344*b2055c35SXin Li } else {
1345*b2055c35SXin Li Py_ssize_t i;
1346*b2055c35SXin Li for (i = 0; i < l; ++i) {
1347*b2055c35SXin Li objs[i] = PyTuple_GET_ITEM(args, i);
1348*b2055c35SXin Li }
1349*b2055c35SXin Li for (; l < max; ++l) {
1350*b2055c35SXin Li objs[l] = 0;
1351*b2055c35SXin Li }
1352*b2055c35SXin Li return i + 1;
1353*b2055c35SXin Li }
1354*b2055c35SXin Li }
1355*b2055c35SXin Li }
1356*b2055c35SXin Li
1357*b2055c35SXin Li /* A functor is a function object with one single object argument */
1358*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02020000
1359*b2055c35SXin Li #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL);
1360*b2055c35SXin Li #else
1361*b2055c35SXin Li #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunction(functor, "O", obj);
1362*b2055c35SXin Li #endif
1363*b2055c35SXin Li
1364*b2055c35SXin Li /*
1365*b2055c35SXin Li Helper for static pointer initialization for both C and C++ code, for example
1366*b2055c35SXin Li static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...);
1367*b2055c35SXin Li */
1368*b2055c35SXin Li #ifdef __cplusplus
1369*b2055c35SXin Li #define SWIG_STATIC_POINTER(var) var
1370*b2055c35SXin Li #else
1371*b2055c35SXin Li #define SWIG_STATIC_POINTER(var) var = 0; if (!var) var
1372*b2055c35SXin Li #endif
1373*b2055c35SXin Li
1374*b2055c35SXin Li /* -----------------------------------------------------------------------------
1375*b2055c35SXin Li * Pointer declarations
1376*b2055c35SXin Li * ----------------------------------------------------------------------------- */
1377*b2055c35SXin Li
1378*b2055c35SXin Li /* Flags for new pointer objects */
1379*b2055c35SXin Li #define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1)
1380*b2055c35SXin Li #define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN)
1381*b2055c35SXin Li
1382*b2055c35SXin Li #define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1)
1383*b2055c35SXin Li
1384*b2055c35SXin Li #define SWIG_BUILTIN_TP_INIT (SWIG_POINTER_OWN << 2)
1385*b2055c35SXin Li #define SWIG_BUILTIN_INIT (SWIG_BUILTIN_TP_INIT | SWIG_POINTER_OWN)
1386*b2055c35SXin Li
1387*b2055c35SXin Li #ifdef __cplusplus
1388*b2055c35SXin Li extern "C" {
1389*b2055c35SXin Li #endif
1390*b2055c35SXin Li
1391*b2055c35SXin Li /* How to access Py_None */
1392*b2055c35SXin Li #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
1393*b2055c35SXin Li # ifndef SWIG_PYTHON_NO_BUILD_NONE
1394*b2055c35SXin Li # ifndef SWIG_PYTHON_BUILD_NONE
1395*b2055c35SXin Li # define SWIG_PYTHON_BUILD_NONE
1396*b2055c35SXin Li # endif
1397*b2055c35SXin Li # endif
1398*b2055c35SXin Li #endif
1399*b2055c35SXin Li
1400*b2055c35SXin Li #ifdef SWIG_PYTHON_BUILD_NONE
1401*b2055c35SXin Li # ifdef Py_None
1402*b2055c35SXin Li # undef Py_None
1403*b2055c35SXin Li # define Py_None SWIG_Py_None()
1404*b2055c35SXin Li # endif
1405*b2055c35SXin Li SWIGRUNTIMEINLINE PyObject *
_SWIG_Py_None(void)1406*b2055c35SXin Li _SWIG_Py_None(void)
1407*b2055c35SXin Li {
1408*b2055c35SXin Li PyObject *none = Py_BuildValue((char*)"");
1409*b2055c35SXin Li Py_DECREF(none);
1410*b2055c35SXin Li return none;
1411*b2055c35SXin Li }
1412*b2055c35SXin Li SWIGRUNTIME PyObject *
SWIG_Py_None(void)1413*b2055c35SXin Li SWIG_Py_None(void)
1414*b2055c35SXin Li {
1415*b2055c35SXin Li static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None();
1416*b2055c35SXin Li return none;
1417*b2055c35SXin Li }
1418*b2055c35SXin Li #endif
1419*b2055c35SXin Li
1420*b2055c35SXin Li /* The python void return value */
1421*b2055c35SXin Li
1422*b2055c35SXin Li SWIGRUNTIMEINLINE PyObject *
SWIG_Py_Void(void)1423*b2055c35SXin Li SWIG_Py_Void(void)
1424*b2055c35SXin Li {
1425*b2055c35SXin Li PyObject *none = Py_None;
1426*b2055c35SXin Li Py_INCREF(none);
1427*b2055c35SXin Li return none;
1428*b2055c35SXin Li }
1429*b2055c35SXin Li
1430*b2055c35SXin Li /* SwigPyClientData */
1431*b2055c35SXin Li
1432*b2055c35SXin Li typedef struct {
1433*b2055c35SXin Li PyObject *klass;
1434*b2055c35SXin Li PyObject *newraw;
1435*b2055c35SXin Li PyObject *newargs;
1436*b2055c35SXin Li PyObject *destroy;
1437*b2055c35SXin Li int delargs;
1438*b2055c35SXin Li int implicitconv;
1439*b2055c35SXin Li PyTypeObject *pytype;
1440*b2055c35SXin Li } SwigPyClientData;
1441*b2055c35SXin Li
1442*b2055c35SXin Li SWIGRUNTIMEINLINE int
SWIG_Python_CheckImplicit(swig_type_info * ty)1443*b2055c35SXin Li SWIG_Python_CheckImplicit(swig_type_info *ty)
1444*b2055c35SXin Li {
1445*b2055c35SXin Li SwigPyClientData *data = (SwigPyClientData *)ty->clientdata;
1446*b2055c35SXin Li return data ? data->implicitconv : 0;
1447*b2055c35SXin Li }
1448*b2055c35SXin Li
1449*b2055c35SXin Li SWIGRUNTIMEINLINE PyObject *
SWIG_Python_ExceptionType(swig_type_info * desc)1450*b2055c35SXin Li SWIG_Python_ExceptionType(swig_type_info *desc) {
1451*b2055c35SXin Li SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0;
1452*b2055c35SXin Li PyObject *klass = data ? data->klass : 0;
1453*b2055c35SXin Li return (klass ? klass : PyExc_RuntimeError);
1454*b2055c35SXin Li }
1455*b2055c35SXin Li
1456*b2055c35SXin Li
1457*b2055c35SXin Li SWIGRUNTIME SwigPyClientData *
SwigPyClientData_New(PyObject * obj)1458*b2055c35SXin Li SwigPyClientData_New(PyObject* obj)
1459*b2055c35SXin Li {
1460*b2055c35SXin Li if (!obj) {
1461*b2055c35SXin Li return 0;
1462*b2055c35SXin Li } else {
1463*b2055c35SXin Li SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData));
1464*b2055c35SXin Li /* the klass element */
1465*b2055c35SXin Li data->klass = obj;
1466*b2055c35SXin Li Py_INCREF(data->klass);
1467*b2055c35SXin Li /* the newraw method and newargs arguments used to create a new raw instance */
1468*b2055c35SXin Li if (PyClass_Check(obj)) {
1469*b2055c35SXin Li data->newraw = 0;
1470*b2055c35SXin Li data->newargs = obj;
1471*b2055c35SXin Li Py_INCREF(obj);
1472*b2055c35SXin Li } else {
1473*b2055c35SXin Li #if (PY_VERSION_HEX < 0x02020000)
1474*b2055c35SXin Li data->newraw = 0;
1475*b2055c35SXin Li #else
1476*b2055c35SXin Li data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__");
1477*b2055c35SXin Li #endif
1478*b2055c35SXin Li if (data->newraw) {
1479*b2055c35SXin Li Py_INCREF(data->newraw);
1480*b2055c35SXin Li data->newargs = PyTuple_New(1);
1481*b2055c35SXin Li PyTuple_SetItem(data->newargs, 0, obj);
1482*b2055c35SXin Li } else {
1483*b2055c35SXin Li data->newargs = obj;
1484*b2055c35SXin Li }
1485*b2055c35SXin Li Py_INCREF(data->newargs);
1486*b2055c35SXin Li }
1487*b2055c35SXin Li /* the destroy method, aka as the C++ delete method */
1488*b2055c35SXin Li data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__");
1489*b2055c35SXin Li if (PyErr_Occurred()) {
1490*b2055c35SXin Li PyErr_Clear();
1491*b2055c35SXin Li data->destroy = 0;
1492*b2055c35SXin Li }
1493*b2055c35SXin Li if (data->destroy) {
1494*b2055c35SXin Li int flags;
1495*b2055c35SXin Li Py_INCREF(data->destroy);
1496*b2055c35SXin Li flags = PyCFunction_GET_FLAGS(data->destroy);
1497*b2055c35SXin Li #ifdef METH_O
1498*b2055c35SXin Li data->delargs = !(flags & (METH_O));
1499*b2055c35SXin Li #else
1500*b2055c35SXin Li data->delargs = 0;
1501*b2055c35SXin Li #endif
1502*b2055c35SXin Li } else {
1503*b2055c35SXin Li data->delargs = 0;
1504*b2055c35SXin Li }
1505*b2055c35SXin Li data->implicitconv = 0;
1506*b2055c35SXin Li data->pytype = 0;
1507*b2055c35SXin Li return data;
1508*b2055c35SXin Li }
1509*b2055c35SXin Li }
1510*b2055c35SXin Li
1511*b2055c35SXin Li SWIGRUNTIME void
SwigPyClientData_Del(SwigPyClientData * data)1512*b2055c35SXin Li SwigPyClientData_Del(SwigPyClientData *data) {
1513*b2055c35SXin Li Py_XDECREF(data->newraw);
1514*b2055c35SXin Li Py_XDECREF(data->newargs);
1515*b2055c35SXin Li Py_XDECREF(data->destroy);
1516*b2055c35SXin Li }
1517*b2055c35SXin Li
1518*b2055c35SXin Li /* =============== SwigPyObject =====================*/
1519*b2055c35SXin Li
1520*b2055c35SXin Li typedef struct {
1521*b2055c35SXin Li PyObject_HEAD
1522*b2055c35SXin Li void *ptr;
1523*b2055c35SXin Li swig_type_info *ty;
1524*b2055c35SXin Li int own;
1525*b2055c35SXin Li PyObject *next;
1526*b2055c35SXin Li #ifdef SWIGPYTHON_BUILTIN
1527*b2055c35SXin Li PyObject *dict;
1528*b2055c35SXin Li #endif
1529*b2055c35SXin Li } SwigPyObject;
1530*b2055c35SXin Li
1531*b2055c35SXin Li
1532*b2055c35SXin Li #ifdef SWIGPYTHON_BUILTIN
1533*b2055c35SXin Li
1534*b2055c35SXin Li SWIGRUNTIME PyObject *
SwigPyObject_get___dict__(PyObject * v,PyObject * SWIGUNUSEDPARM (args))1535*b2055c35SXin Li SwigPyObject_get___dict__(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
1536*b2055c35SXin Li {
1537*b2055c35SXin Li SwigPyObject *sobj = (SwigPyObject *)v;
1538*b2055c35SXin Li
1539*b2055c35SXin Li if (!sobj->dict)
1540*b2055c35SXin Li sobj->dict = PyDict_New();
1541*b2055c35SXin Li
1542*b2055c35SXin Li Py_INCREF(sobj->dict);
1543*b2055c35SXin Li return sobj->dict;
1544*b2055c35SXin Li }
1545*b2055c35SXin Li
1546*b2055c35SXin Li #endif
1547*b2055c35SXin Li
1548*b2055c35SXin Li SWIGRUNTIME PyObject *
SwigPyObject_long(SwigPyObject * v)1549*b2055c35SXin Li SwigPyObject_long(SwigPyObject *v)
1550*b2055c35SXin Li {
1551*b2055c35SXin Li return PyLong_FromVoidPtr(v->ptr);
1552*b2055c35SXin Li }
1553*b2055c35SXin Li
1554*b2055c35SXin Li SWIGRUNTIME PyObject *
SwigPyObject_format(const char * fmt,SwigPyObject * v)1555*b2055c35SXin Li SwigPyObject_format(const char* fmt, SwigPyObject *v)
1556*b2055c35SXin Li {
1557*b2055c35SXin Li PyObject *res = NULL;
1558*b2055c35SXin Li PyObject *args = PyTuple_New(1);
1559*b2055c35SXin Li if (args) {
1560*b2055c35SXin Li if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) {
1561*b2055c35SXin Li PyObject *ofmt = SWIG_Python_str_FromChar(fmt);
1562*b2055c35SXin Li if (ofmt) {
1563*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
1564*b2055c35SXin Li res = PyUnicode_Format(ofmt,args);
1565*b2055c35SXin Li #else
1566*b2055c35SXin Li res = PyString_Format(ofmt,args);
1567*b2055c35SXin Li #endif
1568*b2055c35SXin Li Py_DECREF(ofmt);
1569*b2055c35SXin Li }
1570*b2055c35SXin Li Py_DECREF(args);
1571*b2055c35SXin Li }
1572*b2055c35SXin Li }
1573*b2055c35SXin Li return res;
1574*b2055c35SXin Li }
1575*b2055c35SXin Li
1576*b2055c35SXin Li SWIGRUNTIME PyObject *
SwigPyObject_oct(SwigPyObject * v)1577*b2055c35SXin Li SwigPyObject_oct(SwigPyObject *v)
1578*b2055c35SXin Li {
1579*b2055c35SXin Li return SwigPyObject_format("%o",v);
1580*b2055c35SXin Li }
1581*b2055c35SXin Li
1582*b2055c35SXin Li SWIGRUNTIME PyObject *
SwigPyObject_hex(SwigPyObject * v)1583*b2055c35SXin Li SwigPyObject_hex(SwigPyObject *v)
1584*b2055c35SXin Li {
1585*b2055c35SXin Li return SwigPyObject_format("%x",v);
1586*b2055c35SXin Li }
1587*b2055c35SXin Li
1588*b2055c35SXin Li SWIGRUNTIME PyObject *
1589*b2055c35SXin Li #ifdef METH_NOARGS
SwigPyObject_repr(SwigPyObject * v)1590*b2055c35SXin Li SwigPyObject_repr(SwigPyObject *v)
1591*b2055c35SXin Li #else
1592*b2055c35SXin Li SwigPyObject_repr(SwigPyObject *v, PyObject *args)
1593*b2055c35SXin Li #endif
1594*b2055c35SXin Li {
1595*b2055c35SXin Li const char *name = SWIG_TypePrettyName(v->ty);
1596*b2055c35SXin Li PyObject *repr = SWIG_Python_str_FromFormat("<Swig Object of type '%s' at %p>", (name ? name : "unknown"), (void *)v);
1597*b2055c35SXin Li if (v->next) {
1598*b2055c35SXin Li # ifdef METH_NOARGS
1599*b2055c35SXin Li PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next);
1600*b2055c35SXin Li # else
1601*b2055c35SXin Li PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args);
1602*b2055c35SXin Li # endif
1603*b2055c35SXin Li # if PY_VERSION_HEX >= 0x03000000
1604*b2055c35SXin Li PyObject *joined = PyUnicode_Concat(repr, nrep);
1605*b2055c35SXin Li Py_DecRef(repr);
1606*b2055c35SXin Li Py_DecRef(nrep);
1607*b2055c35SXin Li repr = joined;
1608*b2055c35SXin Li # else
1609*b2055c35SXin Li PyString_ConcatAndDel(&repr,nrep);
1610*b2055c35SXin Li # endif
1611*b2055c35SXin Li }
1612*b2055c35SXin Li return repr;
1613*b2055c35SXin Li }
1614*b2055c35SXin Li
1615*b2055c35SXin Li /* We need a version taking two PyObject* parameters so it's a valid
1616*b2055c35SXin Li * PyCFunction to use in swigobject_methods[]. */
1617*b2055c35SXin Li SWIGRUNTIME PyObject *
SwigPyObject_repr2(PyObject * v,PyObject * SWIGUNUSEDPARM (args))1618*b2055c35SXin Li SwigPyObject_repr2(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
1619*b2055c35SXin Li {
1620*b2055c35SXin Li return SwigPyObject_repr((SwigPyObject*)v);
1621*b2055c35SXin Li }
1622*b2055c35SXin Li
1623*b2055c35SXin Li SWIGRUNTIME int
SwigPyObject_compare(SwigPyObject * v,SwigPyObject * w)1624*b2055c35SXin Li SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
1625*b2055c35SXin Li {
1626*b2055c35SXin Li void *i = v->ptr;
1627*b2055c35SXin Li void *j = w->ptr;
1628*b2055c35SXin Li return (i < j) ? -1 : ((i > j) ? 1 : 0);
1629*b2055c35SXin Li }
1630*b2055c35SXin Li
1631*b2055c35SXin Li /* Added for Python 3.x, would it also be useful for Python 2.x? */
1632*b2055c35SXin Li SWIGRUNTIME PyObject*
SwigPyObject_richcompare(SwigPyObject * v,SwigPyObject * w,int op)1633*b2055c35SXin Li SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op)
1634*b2055c35SXin Li {
1635*b2055c35SXin Li PyObject* res;
1636*b2055c35SXin Li if( op != Py_EQ && op != Py_NE ) {
1637*b2055c35SXin Li Py_INCREF(Py_NotImplemented);
1638*b2055c35SXin Li return Py_NotImplemented;
1639*b2055c35SXin Li }
1640*b2055c35SXin Li res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0);
1641*b2055c35SXin Li return res;
1642*b2055c35SXin Li }
1643*b2055c35SXin Li
1644*b2055c35SXin Li
1645*b2055c35SXin Li SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void);
1646*b2055c35SXin Li
1647*b2055c35SXin Li #ifdef SWIGPYTHON_BUILTIN
1648*b2055c35SXin Li static swig_type_info *SwigPyObject_stype = 0;
1649*b2055c35SXin Li SWIGRUNTIME PyTypeObject*
SwigPyObject_type(void)1650*b2055c35SXin Li SwigPyObject_type(void) {
1651*b2055c35SXin Li SwigPyClientData *cd;
1652*b2055c35SXin Li assert(SwigPyObject_stype);
1653*b2055c35SXin Li cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
1654*b2055c35SXin Li assert(cd);
1655*b2055c35SXin Li assert(cd->pytype);
1656*b2055c35SXin Li return cd->pytype;
1657*b2055c35SXin Li }
1658*b2055c35SXin Li #else
1659*b2055c35SXin Li SWIGRUNTIME PyTypeObject*
SwigPyObject_type(void)1660*b2055c35SXin Li SwigPyObject_type(void) {
1661*b2055c35SXin Li static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyObject_TypeOnce();
1662*b2055c35SXin Li return type;
1663*b2055c35SXin Li }
1664*b2055c35SXin Li #endif
1665*b2055c35SXin Li
1666*b2055c35SXin Li SWIGRUNTIMEINLINE int
SwigPyObject_Check(PyObject * op)1667*b2055c35SXin Li SwigPyObject_Check(PyObject *op) {
1668*b2055c35SXin Li #ifdef SWIGPYTHON_BUILTIN
1669*b2055c35SXin Li PyTypeObject *target_tp = SwigPyObject_type();
1670*b2055c35SXin Li if (PyType_IsSubtype(op->ob_type, target_tp))
1671*b2055c35SXin Li return 1;
1672*b2055c35SXin Li return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0);
1673*b2055c35SXin Li #else
1674*b2055c35SXin Li return (Py_TYPE(op) == SwigPyObject_type())
1675*b2055c35SXin Li || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0);
1676*b2055c35SXin Li #endif
1677*b2055c35SXin Li }
1678*b2055c35SXin Li
1679*b2055c35SXin Li SWIGRUNTIME PyObject *
1680*b2055c35SXin Li SwigPyObject_New(void *ptr, swig_type_info *ty, int own);
1681*b2055c35SXin Li
1682*b2055c35SXin Li SWIGRUNTIME void
SwigPyObject_dealloc(PyObject * v)1683*b2055c35SXin Li SwigPyObject_dealloc(PyObject *v)
1684*b2055c35SXin Li {
1685*b2055c35SXin Li SwigPyObject *sobj = (SwigPyObject *) v;
1686*b2055c35SXin Li PyObject *next = sobj->next;
1687*b2055c35SXin Li if (sobj->own == SWIG_POINTER_OWN) {
1688*b2055c35SXin Li swig_type_info *ty = sobj->ty;
1689*b2055c35SXin Li SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
1690*b2055c35SXin Li PyObject *destroy = data ? data->destroy : 0;
1691*b2055c35SXin Li if (destroy) {
1692*b2055c35SXin Li /* destroy is always a VARARGS method */
1693*b2055c35SXin Li PyObject *res;
1694*b2055c35SXin Li
1695*b2055c35SXin Li /* PyObject_CallFunction() has the potential to silently drop
1696*b2055c35SXin Li the active active exception. In cases of unnamed temporary
1697*b2055c35SXin Li variable or where we just finished iterating over a generator
1698*b2055c35SXin Li StopIteration will be active right now, and this needs to
1699*b2055c35SXin Li remain true upon return from SwigPyObject_dealloc. So save
1700*b2055c35SXin Li and restore. */
1701*b2055c35SXin Li
1702*b2055c35SXin Li PyObject *val = NULL, *type = NULL, *tb = NULL;
1703*b2055c35SXin Li PyErr_Fetch(&val, &type, &tb);
1704*b2055c35SXin Li
1705*b2055c35SXin Li if (data->delargs) {
1706*b2055c35SXin Li /* we need to create a temporary object to carry the destroy operation */
1707*b2055c35SXin Li PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
1708*b2055c35SXin Li res = SWIG_Python_CallFunctor(destroy, tmp);
1709*b2055c35SXin Li Py_DECREF(tmp);
1710*b2055c35SXin Li } else {
1711*b2055c35SXin Li PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
1712*b2055c35SXin Li PyObject *mself = PyCFunction_GET_SELF(destroy);
1713*b2055c35SXin Li res = ((*meth)(mself, v));
1714*b2055c35SXin Li }
1715*b2055c35SXin Li if (!res)
1716*b2055c35SXin Li PyErr_WriteUnraisable(destroy);
1717*b2055c35SXin Li
1718*b2055c35SXin Li PyErr_Restore(val, type, tb);
1719*b2055c35SXin Li
1720*b2055c35SXin Li Py_XDECREF(res);
1721*b2055c35SXin Li }
1722*b2055c35SXin Li #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
1723*b2055c35SXin Li else {
1724*b2055c35SXin Li const char *name = SWIG_TypePrettyName(ty);
1725*b2055c35SXin Li printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
1726*b2055c35SXin Li }
1727*b2055c35SXin Li #endif
1728*b2055c35SXin Li }
1729*b2055c35SXin Li Py_XDECREF(next);
1730*b2055c35SXin Li PyObject_DEL(v);
1731*b2055c35SXin Li }
1732*b2055c35SXin Li
1733*b2055c35SXin Li SWIGRUNTIME PyObject*
SwigPyObject_append(PyObject * v,PyObject * next)1734*b2055c35SXin Li SwigPyObject_append(PyObject* v, PyObject* next)
1735*b2055c35SXin Li {
1736*b2055c35SXin Li SwigPyObject *sobj = (SwigPyObject *) v;
1737*b2055c35SXin Li #ifndef METH_O
1738*b2055c35SXin Li PyObject *tmp = 0;
1739*b2055c35SXin Li if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL;
1740*b2055c35SXin Li next = tmp;
1741*b2055c35SXin Li #endif
1742*b2055c35SXin Li if (!SwigPyObject_Check(next)) {
1743*b2055c35SXin Li PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject");
1744*b2055c35SXin Li return NULL;
1745*b2055c35SXin Li }
1746*b2055c35SXin Li sobj->next = next;
1747*b2055c35SXin Li Py_INCREF(next);
1748*b2055c35SXin Li return SWIG_Py_Void();
1749*b2055c35SXin Li }
1750*b2055c35SXin Li
1751*b2055c35SXin Li SWIGRUNTIME PyObject*
SwigPyObject_next(PyObject * v,PyObject * SWIGUNUSEDPARM (args))1752*b2055c35SXin Li SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1753*b2055c35SXin Li {
1754*b2055c35SXin Li SwigPyObject *sobj = (SwigPyObject *) v;
1755*b2055c35SXin Li if (sobj->next) {
1756*b2055c35SXin Li Py_INCREF(sobj->next);
1757*b2055c35SXin Li return sobj->next;
1758*b2055c35SXin Li } else {
1759*b2055c35SXin Li return SWIG_Py_Void();
1760*b2055c35SXin Li }
1761*b2055c35SXin Li }
1762*b2055c35SXin Li
1763*b2055c35SXin Li SWIGINTERN PyObject*
1764*b2055c35SXin Li #ifdef METH_NOARGS
SwigPyObject_disown(PyObject * v)1765*b2055c35SXin Li SwigPyObject_disown(PyObject *v)
1766*b2055c35SXin Li #else
1767*b2055c35SXin Li SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1768*b2055c35SXin Li #endif
1769*b2055c35SXin Li {
1770*b2055c35SXin Li SwigPyObject *sobj = (SwigPyObject *)v;
1771*b2055c35SXin Li sobj->own = 0;
1772*b2055c35SXin Li return SWIG_Py_Void();
1773*b2055c35SXin Li }
1774*b2055c35SXin Li
1775*b2055c35SXin Li SWIGINTERN PyObject*
1776*b2055c35SXin Li #ifdef METH_NOARGS
SwigPyObject_acquire(PyObject * v)1777*b2055c35SXin Li SwigPyObject_acquire(PyObject *v)
1778*b2055c35SXin Li #else
1779*b2055c35SXin Li SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1780*b2055c35SXin Li #endif
1781*b2055c35SXin Li {
1782*b2055c35SXin Li SwigPyObject *sobj = (SwigPyObject *)v;
1783*b2055c35SXin Li sobj->own = SWIG_POINTER_OWN;
1784*b2055c35SXin Li return SWIG_Py_Void();
1785*b2055c35SXin Li }
1786*b2055c35SXin Li
1787*b2055c35SXin Li #ifdef METH_NOARGS
1788*b2055c35SXin Li static PyObject*
SwigPyObject_disown2(PyObject * v,PyObject * SWIGUNUSEDPARM (args))1789*b2055c35SXin Li SwigPyObject_disown2(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1790*b2055c35SXin Li {
1791*b2055c35SXin Li return SwigPyObject_disown(v);
1792*b2055c35SXin Li }
1793*b2055c35SXin Li
1794*b2055c35SXin Li static PyObject*
SwigPyObject_acquire2(PyObject * v,PyObject * SWIGUNUSEDPARM (args))1795*b2055c35SXin Li SwigPyObject_acquire2(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1796*b2055c35SXin Li {
1797*b2055c35SXin Li return SwigPyObject_acquire(v);
1798*b2055c35SXin Li }
1799*b2055c35SXin Li #endif
1800*b2055c35SXin Li
1801*b2055c35SXin Li SWIGINTERN PyObject*
SwigPyObject_own(PyObject * v,PyObject * args)1802*b2055c35SXin Li SwigPyObject_own(PyObject *v, PyObject *args)
1803*b2055c35SXin Li {
1804*b2055c35SXin Li PyObject *val = 0;
1805*b2055c35SXin Li #if (PY_VERSION_HEX < 0x02020000)
1806*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"|O:own",&val))
1807*b2055c35SXin Li #elif (PY_VERSION_HEX < 0x02050000)
1808*b2055c35SXin Li if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val))
1809*b2055c35SXin Li #else
1810*b2055c35SXin Li if (!PyArg_UnpackTuple(args, "own", 0, 1, &val))
1811*b2055c35SXin Li #endif
1812*b2055c35SXin Li {
1813*b2055c35SXin Li return NULL;
1814*b2055c35SXin Li }
1815*b2055c35SXin Li else
1816*b2055c35SXin Li {
1817*b2055c35SXin Li SwigPyObject *sobj = (SwigPyObject *)v;
1818*b2055c35SXin Li PyObject *obj = PyBool_FromLong(sobj->own);
1819*b2055c35SXin Li if (val) {
1820*b2055c35SXin Li #ifdef METH_NOARGS
1821*b2055c35SXin Li if (PyObject_IsTrue(val)) {
1822*b2055c35SXin Li SwigPyObject_acquire(v);
1823*b2055c35SXin Li } else {
1824*b2055c35SXin Li SwigPyObject_disown(v);
1825*b2055c35SXin Li }
1826*b2055c35SXin Li #else
1827*b2055c35SXin Li if (PyObject_IsTrue(val)) {
1828*b2055c35SXin Li SwigPyObject_acquire(v,args);
1829*b2055c35SXin Li } else {
1830*b2055c35SXin Li SwigPyObject_disown(v,args);
1831*b2055c35SXin Li }
1832*b2055c35SXin Li #endif
1833*b2055c35SXin Li }
1834*b2055c35SXin Li return obj;
1835*b2055c35SXin Li }
1836*b2055c35SXin Li }
1837*b2055c35SXin Li
1838*b2055c35SXin Li #ifdef METH_O
1839*b2055c35SXin Li static PyMethodDef
1840*b2055c35SXin Li swigobject_methods[] = {
1841*b2055c35SXin Li {(char *)"disown", (PyCFunction)SwigPyObject_disown2, METH_NOARGS, (char *)"releases ownership of the pointer"},
1842*b2055c35SXin Li {(char *)"acquire", (PyCFunction)SwigPyObject_acquire2,METH_NOARGS, (char *)"acquires ownership of the pointer"},
1843*b2055c35SXin Li {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
1844*b2055c35SXin Li {(char *)"append", (PyCFunction)SwigPyObject_append, METH_O, (char *)"appends another 'this' object"},
1845*b2055c35SXin Li {(char *)"next", (PyCFunction)SwigPyObject_next, METH_NOARGS, (char *)"returns the next 'this' object"},
1846*b2055c35SXin Li {(char *)"__repr__",(PyCFunction)SwigPyObject_repr2, METH_NOARGS, (char *)"returns object representation"},
1847*b2055c35SXin Li {0, 0, 0, 0}
1848*b2055c35SXin Li };
1849*b2055c35SXin Li #else
1850*b2055c35SXin Li static PyMethodDef
1851*b2055c35SXin Li swigobject_methods[] = {
1852*b2055c35SXin Li {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_VARARGS, (char *)"releases ownership of the pointer"},
1853*b2055c35SXin Li {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS, (char *)"acquires ownership of the pointer"},
1854*b2055c35SXin Li {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
1855*b2055c35SXin Li {(char *)"append", (PyCFunction)SwigPyObject_append, METH_VARARGS, (char *)"appends another 'this' object"},
1856*b2055c35SXin Li {(char *)"next", (PyCFunction)SwigPyObject_next, METH_VARARGS, (char *)"returns the next 'this' object"},
1857*b2055c35SXin Li {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_VARARGS, (char *)"returns object representation"},
1858*b2055c35SXin Li {0, 0, 0, 0}
1859*b2055c35SXin Li };
1860*b2055c35SXin Li #endif
1861*b2055c35SXin Li
1862*b2055c35SXin Li #if PY_VERSION_HEX < 0x02020000
1863*b2055c35SXin Li SWIGINTERN PyObject *
SwigPyObject_getattr(SwigPyObject * sobj,char * name)1864*b2055c35SXin Li SwigPyObject_getattr(SwigPyObject *sobj,char *name)
1865*b2055c35SXin Li {
1866*b2055c35SXin Li return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name);
1867*b2055c35SXin Li }
1868*b2055c35SXin Li #endif
1869*b2055c35SXin Li
1870*b2055c35SXin Li SWIGRUNTIME PyTypeObject*
SwigPyObject_TypeOnce(void)1871*b2055c35SXin Li SwigPyObject_TypeOnce(void) {
1872*b2055c35SXin Li static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
1873*b2055c35SXin Li
1874*b2055c35SXin Li static PyNumberMethods SwigPyObject_as_number = {
1875*b2055c35SXin Li (binaryfunc)0, /*nb_add*/
1876*b2055c35SXin Li (binaryfunc)0, /*nb_subtract*/
1877*b2055c35SXin Li (binaryfunc)0, /*nb_multiply*/
1878*b2055c35SXin Li /* nb_divide removed in Python 3 */
1879*b2055c35SXin Li #if PY_VERSION_HEX < 0x03000000
1880*b2055c35SXin Li (binaryfunc)0, /*nb_divide*/
1881*b2055c35SXin Li #endif
1882*b2055c35SXin Li (binaryfunc)0, /*nb_remainder*/
1883*b2055c35SXin Li (binaryfunc)0, /*nb_divmod*/
1884*b2055c35SXin Li (ternaryfunc)0,/*nb_power*/
1885*b2055c35SXin Li (unaryfunc)0, /*nb_negative*/
1886*b2055c35SXin Li (unaryfunc)0, /*nb_positive*/
1887*b2055c35SXin Li (unaryfunc)0, /*nb_absolute*/
1888*b2055c35SXin Li (inquiry)0, /*nb_nonzero*/
1889*b2055c35SXin Li 0, /*nb_invert*/
1890*b2055c35SXin Li 0, /*nb_lshift*/
1891*b2055c35SXin Li 0, /*nb_rshift*/
1892*b2055c35SXin Li 0, /*nb_and*/
1893*b2055c35SXin Li 0, /*nb_xor*/
1894*b2055c35SXin Li 0, /*nb_or*/
1895*b2055c35SXin Li #if PY_VERSION_HEX < 0x03000000
1896*b2055c35SXin Li 0, /*nb_coerce*/
1897*b2055c35SXin Li #endif
1898*b2055c35SXin Li (unaryfunc)SwigPyObject_long, /*nb_int*/
1899*b2055c35SXin Li #if PY_VERSION_HEX < 0x03000000
1900*b2055c35SXin Li (unaryfunc)SwigPyObject_long, /*nb_long*/
1901*b2055c35SXin Li #else
1902*b2055c35SXin Li 0, /*nb_reserved*/
1903*b2055c35SXin Li #endif
1904*b2055c35SXin Li (unaryfunc)0, /*nb_float*/
1905*b2055c35SXin Li #if PY_VERSION_HEX < 0x03000000
1906*b2055c35SXin Li (unaryfunc)SwigPyObject_oct, /*nb_oct*/
1907*b2055c35SXin Li (unaryfunc)SwigPyObject_hex, /*nb_hex*/
1908*b2055c35SXin Li #endif
1909*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03050000 /* 3.5 */
1910*b2055c35SXin Li 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */
1911*b2055c35SXin Li #elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */
1912*b2055c35SXin Li 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */
1913*b2055c35SXin Li #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
1914*b2055c35SXin Li 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
1915*b2055c35SXin Li #elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */
1916*b2055c35SXin Li 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
1917*b2055c35SXin Li #elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */
1918*b2055c35SXin Li 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
1919*b2055c35SXin Li #endif
1920*b2055c35SXin Li };
1921*b2055c35SXin Li
1922*b2055c35SXin Li static PyTypeObject swigpyobject_type;
1923*b2055c35SXin Li static int type_init = 0;
1924*b2055c35SXin Li if (!type_init) {
1925*b2055c35SXin Li const PyTypeObject tmp = {
1926*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
1927*b2055c35SXin Li PyVarObject_HEAD_INIT(NULL, 0)
1928*b2055c35SXin Li #else
1929*b2055c35SXin Li PyObject_HEAD_INIT(NULL)
1930*b2055c35SXin Li 0, /* ob_size */
1931*b2055c35SXin Li #endif
1932*b2055c35SXin Li (char *)"SwigPyObject", /* tp_name */
1933*b2055c35SXin Li sizeof(SwigPyObject), /* tp_basicsize */
1934*b2055c35SXin Li 0, /* tp_itemsize */
1935*b2055c35SXin Li (destructor)SwigPyObject_dealloc, /* tp_dealloc */
1936*b2055c35SXin Li 0, /* tp_print */
1937*b2055c35SXin Li #if PY_VERSION_HEX < 0x02020000
1938*b2055c35SXin Li (getattrfunc)SwigPyObject_getattr, /* tp_getattr */
1939*b2055c35SXin Li #else
1940*b2055c35SXin Li (getattrfunc)0, /* tp_getattr */
1941*b2055c35SXin Li #endif
1942*b2055c35SXin Li (setattrfunc)0, /* tp_setattr */
1943*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
1944*b2055c35SXin Li 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */
1945*b2055c35SXin Li #else
1946*b2055c35SXin Li (cmpfunc)SwigPyObject_compare, /* tp_compare */
1947*b2055c35SXin Li #endif
1948*b2055c35SXin Li (reprfunc)SwigPyObject_repr, /* tp_repr */
1949*b2055c35SXin Li &SwigPyObject_as_number, /* tp_as_number */
1950*b2055c35SXin Li 0, /* tp_as_sequence */
1951*b2055c35SXin Li 0, /* tp_as_mapping */
1952*b2055c35SXin Li (hashfunc)0, /* tp_hash */
1953*b2055c35SXin Li (ternaryfunc)0, /* tp_call */
1954*b2055c35SXin Li 0, /* tp_str */
1955*b2055c35SXin Li PyObject_GenericGetAttr, /* tp_getattro */
1956*b2055c35SXin Li 0, /* tp_setattro */
1957*b2055c35SXin Li 0, /* tp_as_buffer */
1958*b2055c35SXin Li Py_TPFLAGS_DEFAULT, /* tp_flags */
1959*b2055c35SXin Li swigobject_doc, /* tp_doc */
1960*b2055c35SXin Li 0, /* tp_traverse */
1961*b2055c35SXin Li 0, /* tp_clear */
1962*b2055c35SXin Li (richcmpfunc)SwigPyObject_richcompare,/* tp_richcompare */
1963*b2055c35SXin Li 0, /* tp_weaklistoffset */
1964*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02020000
1965*b2055c35SXin Li 0, /* tp_iter */
1966*b2055c35SXin Li 0, /* tp_iternext */
1967*b2055c35SXin Li swigobject_methods, /* tp_methods */
1968*b2055c35SXin Li 0, /* tp_members */
1969*b2055c35SXin Li 0, /* tp_getset */
1970*b2055c35SXin Li 0, /* tp_base */
1971*b2055c35SXin Li 0, /* tp_dict */
1972*b2055c35SXin Li 0, /* tp_descr_get */
1973*b2055c35SXin Li 0, /* tp_descr_set */
1974*b2055c35SXin Li 0, /* tp_dictoffset */
1975*b2055c35SXin Li 0, /* tp_init */
1976*b2055c35SXin Li 0, /* tp_alloc */
1977*b2055c35SXin Li 0, /* tp_new */
1978*b2055c35SXin Li 0, /* tp_free */
1979*b2055c35SXin Li 0, /* tp_is_gc */
1980*b2055c35SXin Li 0, /* tp_bases */
1981*b2055c35SXin Li 0, /* tp_mro */
1982*b2055c35SXin Li 0, /* tp_cache */
1983*b2055c35SXin Li 0, /* tp_subclasses */
1984*b2055c35SXin Li 0, /* tp_weaklist */
1985*b2055c35SXin Li #endif
1986*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02030000
1987*b2055c35SXin Li 0, /* tp_del */
1988*b2055c35SXin Li #endif
1989*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02060000
1990*b2055c35SXin Li 0, /* tp_version_tag */
1991*b2055c35SXin Li #endif
1992*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03040000
1993*b2055c35SXin Li 0, /* tp_finalize */
1994*b2055c35SXin Li #endif
1995*b2055c35SXin Li #ifdef COUNT_ALLOCS
1996*b2055c35SXin Li 0, /* tp_allocs */
1997*b2055c35SXin Li 0, /* tp_frees */
1998*b2055c35SXin Li 0, /* tp_maxalloc */
1999*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02050000
2000*b2055c35SXin Li 0, /* tp_prev */
2001*b2055c35SXin Li #endif
2002*b2055c35SXin Li 0 /* tp_next */
2003*b2055c35SXin Li #endif
2004*b2055c35SXin Li };
2005*b2055c35SXin Li swigpyobject_type = tmp;
2006*b2055c35SXin Li type_init = 1;
2007*b2055c35SXin Li #if PY_VERSION_HEX < 0x02020000
2008*b2055c35SXin Li swigpyobject_type.ob_type = &PyType_Type;
2009*b2055c35SXin Li #else
2010*b2055c35SXin Li if (PyType_Ready(&swigpyobject_type) < 0)
2011*b2055c35SXin Li return NULL;
2012*b2055c35SXin Li #endif
2013*b2055c35SXin Li }
2014*b2055c35SXin Li return &swigpyobject_type;
2015*b2055c35SXin Li }
2016*b2055c35SXin Li
2017*b2055c35SXin Li SWIGRUNTIME PyObject *
SwigPyObject_New(void * ptr,swig_type_info * ty,int own)2018*b2055c35SXin Li SwigPyObject_New(void *ptr, swig_type_info *ty, int own)
2019*b2055c35SXin Li {
2020*b2055c35SXin Li SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type());
2021*b2055c35SXin Li if (sobj) {
2022*b2055c35SXin Li sobj->ptr = ptr;
2023*b2055c35SXin Li sobj->ty = ty;
2024*b2055c35SXin Li sobj->own = own;
2025*b2055c35SXin Li sobj->next = 0;
2026*b2055c35SXin Li }
2027*b2055c35SXin Li return (PyObject *)sobj;
2028*b2055c35SXin Li }
2029*b2055c35SXin Li
2030*b2055c35SXin Li /* -----------------------------------------------------------------------------
2031*b2055c35SXin Li * Implements a simple Swig Packed type, and use it instead of string
2032*b2055c35SXin Li * ----------------------------------------------------------------------------- */
2033*b2055c35SXin Li
2034*b2055c35SXin Li typedef struct {
2035*b2055c35SXin Li PyObject_HEAD
2036*b2055c35SXin Li void *pack;
2037*b2055c35SXin Li swig_type_info *ty;
2038*b2055c35SXin Li size_t size;
2039*b2055c35SXin Li } SwigPyPacked;
2040*b2055c35SXin Li
2041*b2055c35SXin Li SWIGRUNTIME int
SwigPyPacked_print(SwigPyPacked * v,FILE * fp,int SWIGUNUSEDPARM (flags))2042*b2055c35SXin Li SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
2043*b2055c35SXin Li {
2044*b2055c35SXin Li char result[SWIG_BUFFER_SIZE];
2045*b2055c35SXin Li fputs("<Swig Packed ", fp);
2046*b2055c35SXin Li if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
2047*b2055c35SXin Li fputs("at ", fp);
2048*b2055c35SXin Li fputs(result, fp);
2049*b2055c35SXin Li }
2050*b2055c35SXin Li fputs(v->ty->name,fp);
2051*b2055c35SXin Li fputs(">", fp);
2052*b2055c35SXin Li return 0;
2053*b2055c35SXin Li }
2054*b2055c35SXin Li
2055*b2055c35SXin Li SWIGRUNTIME PyObject *
SwigPyPacked_repr(SwigPyPacked * v)2056*b2055c35SXin Li SwigPyPacked_repr(SwigPyPacked *v)
2057*b2055c35SXin Li {
2058*b2055c35SXin Li char result[SWIG_BUFFER_SIZE];
2059*b2055c35SXin Li if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
2060*b2055c35SXin Li return SWIG_Python_str_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
2061*b2055c35SXin Li } else {
2062*b2055c35SXin Li return SWIG_Python_str_FromFormat("<Swig Packed %s>", v->ty->name);
2063*b2055c35SXin Li }
2064*b2055c35SXin Li }
2065*b2055c35SXin Li
2066*b2055c35SXin Li SWIGRUNTIME PyObject *
SwigPyPacked_str(SwigPyPacked * v)2067*b2055c35SXin Li SwigPyPacked_str(SwigPyPacked *v)
2068*b2055c35SXin Li {
2069*b2055c35SXin Li char result[SWIG_BUFFER_SIZE];
2070*b2055c35SXin Li if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
2071*b2055c35SXin Li return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name);
2072*b2055c35SXin Li } else {
2073*b2055c35SXin Li return SWIG_Python_str_FromChar(v->ty->name);
2074*b2055c35SXin Li }
2075*b2055c35SXin Li }
2076*b2055c35SXin Li
2077*b2055c35SXin Li SWIGRUNTIME int
SwigPyPacked_compare(SwigPyPacked * v,SwigPyPacked * w)2078*b2055c35SXin Li SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w)
2079*b2055c35SXin Li {
2080*b2055c35SXin Li size_t i = v->size;
2081*b2055c35SXin Li size_t j = w->size;
2082*b2055c35SXin Li int s = (i < j) ? -1 : ((i > j) ? 1 : 0);
2083*b2055c35SXin Li return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size);
2084*b2055c35SXin Li }
2085*b2055c35SXin Li
2086*b2055c35SXin Li SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void);
2087*b2055c35SXin Li
2088*b2055c35SXin Li SWIGRUNTIME PyTypeObject*
SwigPyPacked_type(void)2089*b2055c35SXin Li SwigPyPacked_type(void) {
2090*b2055c35SXin Li static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyPacked_TypeOnce();
2091*b2055c35SXin Li return type;
2092*b2055c35SXin Li }
2093*b2055c35SXin Li
2094*b2055c35SXin Li SWIGRUNTIMEINLINE int
SwigPyPacked_Check(PyObject * op)2095*b2055c35SXin Li SwigPyPacked_Check(PyObject *op) {
2096*b2055c35SXin Li return ((op)->ob_type == SwigPyPacked_TypeOnce())
2097*b2055c35SXin Li || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0);
2098*b2055c35SXin Li }
2099*b2055c35SXin Li
2100*b2055c35SXin Li SWIGRUNTIME void
SwigPyPacked_dealloc(PyObject * v)2101*b2055c35SXin Li SwigPyPacked_dealloc(PyObject *v)
2102*b2055c35SXin Li {
2103*b2055c35SXin Li if (SwigPyPacked_Check(v)) {
2104*b2055c35SXin Li SwigPyPacked *sobj = (SwigPyPacked *) v;
2105*b2055c35SXin Li free(sobj->pack);
2106*b2055c35SXin Li }
2107*b2055c35SXin Li PyObject_DEL(v);
2108*b2055c35SXin Li }
2109*b2055c35SXin Li
2110*b2055c35SXin Li SWIGRUNTIME PyTypeObject*
SwigPyPacked_TypeOnce(void)2111*b2055c35SXin Li SwigPyPacked_TypeOnce(void) {
2112*b2055c35SXin Li static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
2113*b2055c35SXin Li static PyTypeObject swigpypacked_type;
2114*b2055c35SXin Li static int type_init = 0;
2115*b2055c35SXin Li if (!type_init) {
2116*b2055c35SXin Li const PyTypeObject tmp = {
2117*b2055c35SXin Li #if PY_VERSION_HEX>=0x03000000
2118*b2055c35SXin Li PyVarObject_HEAD_INIT(NULL, 0)
2119*b2055c35SXin Li #else
2120*b2055c35SXin Li PyObject_HEAD_INIT(NULL)
2121*b2055c35SXin Li 0, /* ob_size */
2122*b2055c35SXin Li #endif
2123*b2055c35SXin Li (char *)"SwigPyPacked", /* tp_name */
2124*b2055c35SXin Li sizeof(SwigPyPacked), /* tp_basicsize */
2125*b2055c35SXin Li 0, /* tp_itemsize */
2126*b2055c35SXin Li (destructor)SwigPyPacked_dealloc, /* tp_dealloc */
2127*b2055c35SXin Li (printfunc)SwigPyPacked_print, /* tp_print */
2128*b2055c35SXin Li (getattrfunc)0, /* tp_getattr */
2129*b2055c35SXin Li (setattrfunc)0, /* tp_setattr */
2130*b2055c35SXin Li #if PY_VERSION_HEX>=0x03000000
2131*b2055c35SXin Li 0, /* tp_reserved in 3.0.1 */
2132*b2055c35SXin Li #else
2133*b2055c35SXin Li (cmpfunc)SwigPyPacked_compare, /* tp_compare */
2134*b2055c35SXin Li #endif
2135*b2055c35SXin Li (reprfunc)SwigPyPacked_repr, /* tp_repr */
2136*b2055c35SXin Li 0, /* tp_as_number */
2137*b2055c35SXin Li 0, /* tp_as_sequence */
2138*b2055c35SXin Li 0, /* tp_as_mapping */
2139*b2055c35SXin Li (hashfunc)0, /* tp_hash */
2140*b2055c35SXin Li (ternaryfunc)0, /* tp_call */
2141*b2055c35SXin Li (reprfunc)SwigPyPacked_str, /* tp_str */
2142*b2055c35SXin Li PyObject_GenericGetAttr, /* tp_getattro */
2143*b2055c35SXin Li 0, /* tp_setattro */
2144*b2055c35SXin Li 0, /* tp_as_buffer */
2145*b2055c35SXin Li Py_TPFLAGS_DEFAULT, /* tp_flags */
2146*b2055c35SXin Li swigpacked_doc, /* tp_doc */
2147*b2055c35SXin Li 0, /* tp_traverse */
2148*b2055c35SXin Li 0, /* tp_clear */
2149*b2055c35SXin Li 0, /* tp_richcompare */
2150*b2055c35SXin Li 0, /* tp_weaklistoffset */
2151*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02020000
2152*b2055c35SXin Li 0, /* tp_iter */
2153*b2055c35SXin Li 0, /* tp_iternext */
2154*b2055c35SXin Li 0, /* tp_methods */
2155*b2055c35SXin Li 0, /* tp_members */
2156*b2055c35SXin Li 0, /* tp_getset */
2157*b2055c35SXin Li 0, /* tp_base */
2158*b2055c35SXin Li 0, /* tp_dict */
2159*b2055c35SXin Li 0, /* tp_descr_get */
2160*b2055c35SXin Li 0, /* tp_descr_set */
2161*b2055c35SXin Li 0, /* tp_dictoffset */
2162*b2055c35SXin Li 0, /* tp_init */
2163*b2055c35SXin Li 0, /* tp_alloc */
2164*b2055c35SXin Li 0, /* tp_new */
2165*b2055c35SXin Li 0, /* tp_free */
2166*b2055c35SXin Li 0, /* tp_is_gc */
2167*b2055c35SXin Li 0, /* tp_bases */
2168*b2055c35SXin Li 0, /* tp_mro */
2169*b2055c35SXin Li 0, /* tp_cache */
2170*b2055c35SXin Li 0, /* tp_subclasses */
2171*b2055c35SXin Li 0, /* tp_weaklist */
2172*b2055c35SXin Li #endif
2173*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02030000
2174*b2055c35SXin Li 0, /* tp_del */
2175*b2055c35SXin Li #endif
2176*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02060000
2177*b2055c35SXin Li 0, /* tp_version_tag */
2178*b2055c35SXin Li #endif
2179*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03040000
2180*b2055c35SXin Li 0, /* tp_finalize */
2181*b2055c35SXin Li #endif
2182*b2055c35SXin Li #ifdef COUNT_ALLOCS
2183*b2055c35SXin Li 0, /* tp_allocs */
2184*b2055c35SXin Li 0, /* tp_frees */
2185*b2055c35SXin Li 0, /* tp_maxalloc */
2186*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02050000
2187*b2055c35SXin Li 0, /* tp_prev */
2188*b2055c35SXin Li #endif
2189*b2055c35SXin Li 0 /* tp_next */
2190*b2055c35SXin Li #endif
2191*b2055c35SXin Li };
2192*b2055c35SXin Li swigpypacked_type = tmp;
2193*b2055c35SXin Li type_init = 1;
2194*b2055c35SXin Li #if PY_VERSION_HEX < 0x02020000
2195*b2055c35SXin Li swigpypacked_type.ob_type = &PyType_Type;
2196*b2055c35SXin Li #else
2197*b2055c35SXin Li if (PyType_Ready(&swigpypacked_type) < 0)
2198*b2055c35SXin Li return NULL;
2199*b2055c35SXin Li #endif
2200*b2055c35SXin Li }
2201*b2055c35SXin Li return &swigpypacked_type;
2202*b2055c35SXin Li }
2203*b2055c35SXin Li
2204*b2055c35SXin Li SWIGRUNTIME PyObject *
SwigPyPacked_New(void * ptr,size_t size,swig_type_info * ty)2205*b2055c35SXin Li SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)
2206*b2055c35SXin Li {
2207*b2055c35SXin Li SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type());
2208*b2055c35SXin Li if (sobj) {
2209*b2055c35SXin Li void *pack = malloc(size);
2210*b2055c35SXin Li if (pack) {
2211*b2055c35SXin Li memcpy(pack, ptr, size);
2212*b2055c35SXin Li sobj->pack = pack;
2213*b2055c35SXin Li sobj->ty = ty;
2214*b2055c35SXin Li sobj->size = size;
2215*b2055c35SXin Li } else {
2216*b2055c35SXin Li PyObject_DEL((PyObject *) sobj);
2217*b2055c35SXin Li sobj = 0;
2218*b2055c35SXin Li }
2219*b2055c35SXin Li }
2220*b2055c35SXin Li return (PyObject *) sobj;
2221*b2055c35SXin Li }
2222*b2055c35SXin Li
2223*b2055c35SXin Li SWIGRUNTIME swig_type_info *
SwigPyPacked_UnpackData(PyObject * obj,void * ptr,size_t size)2224*b2055c35SXin Li SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
2225*b2055c35SXin Li {
2226*b2055c35SXin Li if (SwigPyPacked_Check(obj)) {
2227*b2055c35SXin Li SwigPyPacked *sobj = (SwigPyPacked *)obj;
2228*b2055c35SXin Li if (sobj->size != size) return 0;
2229*b2055c35SXin Li memcpy(ptr, sobj->pack, size);
2230*b2055c35SXin Li return sobj->ty;
2231*b2055c35SXin Li } else {
2232*b2055c35SXin Li return 0;
2233*b2055c35SXin Li }
2234*b2055c35SXin Li }
2235*b2055c35SXin Li
2236*b2055c35SXin Li /* -----------------------------------------------------------------------------
2237*b2055c35SXin Li * pointers/data manipulation
2238*b2055c35SXin Li * ----------------------------------------------------------------------------- */
2239*b2055c35SXin Li
2240*b2055c35SXin Li SWIGRUNTIMEINLINE PyObject *
_SWIG_This(void)2241*b2055c35SXin Li _SWIG_This(void)
2242*b2055c35SXin Li {
2243*b2055c35SXin Li return SWIG_Python_str_FromChar("this");
2244*b2055c35SXin Li }
2245*b2055c35SXin Li
2246*b2055c35SXin Li static PyObject *swig_this = NULL;
2247*b2055c35SXin Li
2248*b2055c35SXin Li SWIGRUNTIME PyObject *
SWIG_This(void)2249*b2055c35SXin Li SWIG_This(void)
2250*b2055c35SXin Li {
2251*b2055c35SXin Li if (swig_this == NULL)
2252*b2055c35SXin Li swig_this = _SWIG_This();
2253*b2055c35SXin Li return swig_this;
2254*b2055c35SXin Li }
2255*b2055c35SXin Li
2256*b2055c35SXin Li /* #define SWIG_PYTHON_SLOW_GETSET_THIS */
2257*b2055c35SXin Li
2258*b2055c35SXin Li /* TODO: I don't know how to implement the fast getset in Python 3 right now */
2259*b2055c35SXin Li #if PY_VERSION_HEX>=0x03000000
2260*b2055c35SXin Li #define SWIG_PYTHON_SLOW_GETSET_THIS
2261*b2055c35SXin Li #endif
2262*b2055c35SXin Li
2263*b2055c35SXin Li SWIGRUNTIME SwigPyObject *
SWIG_Python_GetSwigThis(PyObject * pyobj)2264*b2055c35SXin Li SWIG_Python_GetSwigThis(PyObject *pyobj)
2265*b2055c35SXin Li {
2266*b2055c35SXin Li PyObject *obj;
2267*b2055c35SXin Li
2268*b2055c35SXin Li if (SwigPyObject_Check(pyobj))
2269*b2055c35SXin Li return (SwigPyObject *) pyobj;
2270*b2055c35SXin Li
2271*b2055c35SXin Li #ifdef SWIGPYTHON_BUILTIN
2272*b2055c35SXin Li (void)obj;
2273*b2055c35SXin Li # ifdef PyWeakref_CheckProxy
2274*b2055c35SXin Li if (PyWeakref_CheckProxy(pyobj)) {
2275*b2055c35SXin Li pyobj = PyWeakref_GET_OBJECT(pyobj);
2276*b2055c35SXin Li if (pyobj && SwigPyObject_Check(pyobj))
2277*b2055c35SXin Li return (SwigPyObject*) pyobj;
2278*b2055c35SXin Li }
2279*b2055c35SXin Li # endif
2280*b2055c35SXin Li return NULL;
2281*b2055c35SXin Li #else
2282*b2055c35SXin Li
2283*b2055c35SXin Li obj = 0;
2284*b2055c35SXin Li
2285*b2055c35SXin Li #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000))
2286*b2055c35SXin Li if (PyInstance_Check(pyobj)) {
2287*b2055c35SXin Li obj = _PyInstance_Lookup(pyobj, SWIG_This());
2288*b2055c35SXin Li } else {
2289*b2055c35SXin Li PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
2290*b2055c35SXin Li if (dictptr != NULL) {
2291*b2055c35SXin Li PyObject *dict = *dictptr;
2292*b2055c35SXin Li obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
2293*b2055c35SXin Li } else {
2294*b2055c35SXin Li #ifdef PyWeakref_CheckProxy
2295*b2055c35SXin Li if (PyWeakref_CheckProxy(pyobj)) {
2296*b2055c35SXin Li PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
2297*b2055c35SXin Li return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
2298*b2055c35SXin Li }
2299*b2055c35SXin Li #endif
2300*b2055c35SXin Li obj = PyObject_GetAttr(pyobj,SWIG_This());
2301*b2055c35SXin Li if (obj) {
2302*b2055c35SXin Li Py_DECREF(obj);
2303*b2055c35SXin Li } else {
2304*b2055c35SXin Li if (PyErr_Occurred()) PyErr_Clear();
2305*b2055c35SXin Li return 0;
2306*b2055c35SXin Li }
2307*b2055c35SXin Li }
2308*b2055c35SXin Li }
2309*b2055c35SXin Li #else
2310*b2055c35SXin Li obj = PyObject_GetAttr(pyobj,SWIG_This());
2311*b2055c35SXin Li if (obj) {
2312*b2055c35SXin Li Py_DECREF(obj);
2313*b2055c35SXin Li } else {
2314*b2055c35SXin Li if (PyErr_Occurred()) PyErr_Clear();
2315*b2055c35SXin Li return 0;
2316*b2055c35SXin Li }
2317*b2055c35SXin Li #endif
2318*b2055c35SXin Li if (obj && !SwigPyObject_Check(obj)) {
2319*b2055c35SXin Li /* a PyObject is called 'this', try to get the 'real this'
2320*b2055c35SXin Li SwigPyObject from it */
2321*b2055c35SXin Li return SWIG_Python_GetSwigThis(obj);
2322*b2055c35SXin Li }
2323*b2055c35SXin Li return (SwigPyObject *)obj;
2324*b2055c35SXin Li #endif
2325*b2055c35SXin Li }
2326*b2055c35SXin Li
2327*b2055c35SXin Li /* Acquire a pointer value */
2328*b2055c35SXin Li
2329*b2055c35SXin Li SWIGRUNTIME int
SWIG_Python_AcquirePtr(PyObject * obj,int own)2330*b2055c35SXin Li SWIG_Python_AcquirePtr(PyObject *obj, int own) {
2331*b2055c35SXin Li if (own == SWIG_POINTER_OWN) {
2332*b2055c35SXin Li SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj);
2333*b2055c35SXin Li if (sobj) {
2334*b2055c35SXin Li int oldown = sobj->own;
2335*b2055c35SXin Li sobj->own = own;
2336*b2055c35SXin Li return oldown;
2337*b2055c35SXin Li }
2338*b2055c35SXin Li }
2339*b2055c35SXin Li return 0;
2340*b2055c35SXin Li }
2341*b2055c35SXin Li
2342*b2055c35SXin Li /* Convert a pointer value */
2343*b2055c35SXin Li
2344*b2055c35SXin Li SWIGRUNTIME int
SWIG_Python_ConvertPtrAndOwn(PyObject * obj,void ** ptr,swig_type_info * ty,int flags,int * own)2345*b2055c35SXin Li SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
2346*b2055c35SXin Li int res;
2347*b2055c35SXin Li SwigPyObject *sobj;
2348*b2055c35SXin Li int implicit_conv = (flags & SWIG_POINTER_IMPLICIT_CONV) != 0;
2349*b2055c35SXin Li
2350*b2055c35SXin Li if (!obj)
2351*b2055c35SXin Li return SWIG_ERROR;
2352*b2055c35SXin Li if (obj == Py_None && !implicit_conv) {
2353*b2055c35SXin Li if (ptr)
2354*b2055c35SXin Li *ptr = 0;
2355*b2055c35SXin Li return SWIG_OK;
2356*b2055c35SXin Li }
2357*b2055c35SXin Li
2358*b2055c35SXin Li res = SWIG_ERROR;
2359*b2055c35SXin Li
2360*b2055c35SXin Li sobj = SWIG_Python_GetSwigThis(obj);
2361*b2055c35SXin Li if (own)
2362*b2055c35SXin Li *own = 0;
2363*b2055c35SXin Li while (sobj) {
2364*b2055c35SXin Li void *vptr = sobj->ptr;
2365*b2055c35SXin Li if (ty) {
2366*b2055c35SXin Li swig_type_info *to = sobj->ty;
2367*b2055c35SXin Li if (to == ty) {
2368*b2055c35SXin Li /* no type cast needed */
2369*b2055c35SXin Li if (ptr) *ptr = vptr;
2370*b2055c35SXin Li break;
2371*b2055c35SXin Li } else {
2372*b2055c35SXin Li swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
2373*b2055c35SXin Li if (!tc) {
2374*b2055c35SXin Li sobj = (SwigPyObject *)sobj->next;
2375*b2055c35SXin Li } else {
2376*b2055c35SXin Li if (ptr) {
2377*b2055c35SXin Li int newmemory = 0;
2378*b2055c35SXin Li *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
2379*b2055c35SXin Li if (newmemory == SWIG_CAST_NEW_MEMORY) {
2380*b2055c35SXin Li assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
2381*b2055c35SXin Li if (own)
2382*b2055c35SXin Li *own = *own | SWIG_CAST_NEW_MEMORY;
2383*b2055c35SXin Li }
2384*b2055c35SXin Li }
2385*b2055c35SXin Li break;
2386*b2055c35SXin Li }
2387*b2055c35SXin Li }
2388*b2055c35SXin Li } else {
2389*b2055c35SXin Li if (ptr) *ptr = vptr;
2390*b2055c35SXin Li break;
2391*b2055c35SXin Li }
2392*b2055c35SXin Li }
2393*b2055c35SXin Li if (sobj) {
2394*b2055c35SXin Li if (own)
2395*b2055c35SXin Li *own = *own | sobj->own;
2396*b2055c35SXin Li if (flags & SWIG_POINTER_DISOWN) {
2397*b2055c35SXin Li sobj->own = 0;
2398*b2055c35SXin Li }
2399*b2055c35SXin Li res = SWIG_OK;
2400*b2055c35SXin Li } else {
2401*b2055c35SXin Li if (implicit_conv) {
2402*b2055c35SXin Li SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
2403*b2055c35SXin Li if (data && !data->implicitconv) {
2404*b2055c35SXin Li PyObject *klass = data->klass;
2405*b2055c35SXin Li if (klass) {
2406*b2055c35SXin Li PyObject *impconv;
2407*b2055c35SXin Li data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
2408*b2055c35SXin Li impconv = SWIG_Python_CallFunctor(klass, obj);
2409*b2055c35SXin Li data->implicitconv = 0;
2410*b2055c35SXin Li if (PyErr_Occurred()) {
2411*b2055c35SXin Li PyErr_Clear();
2412*b2055c35SXin Li impconv = 0;
2413*b2055c35SXin Li }
2414*b2055c35SXin Li if (impconv) {
2415*b2055c35SXin Li SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv);
2416*b2055c35SXin Li if (iobj) {
2417*b2055c35SXin Li void *vptr;
2418*b2055c35SXin Li res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
2419*b2055c35SXin Li if (SWIG_IsOK(res)) {
2420*b2055c35SXin Li if (ptr) {
2421*b2055c35SXin Li *ptr = vptr;
2422*b2055c35SXin Li /* transfer the ownership to 'ptr' */
2423*b2055c35SXin Li iobj->own = 0;
2424*b2055c35SXin Li res = SWIG_AddCast(res);
2425*b2055c35SXin Li res = SWIG_AddNewMask(res);
2426*b2055c35SXin Li } else {
2427*b2055c35SXin Li res = SWIG_AddCast(res);
2428*b2055c35SXin Li }
2429*b2055c35SXin Li }
2430*b2055c35SXin Li }
2431*b2055c35SXin Li Py_DECREF(impconv);
2432*b2055c35SXin Li }
2433*b2055c35SXin Li }
2434*b2055c35SXin Li }
2435*b2055c35SXin Li }
2436*b2055c35SXin Li if (!SWIG_IsOK(res) && obj == Py_None) {
2437*b2055c35SXin Li if (ptr)
2438*b2055c35SXin Li *ptr = 0;
2439*b2055c35SXin Li if (PyErr_Occurred())
2440*b2055c35SXin Li PyErr_Clear();
2441*b2055c35SXin Li res = SWIG_OK;
2442*b2055c35SXin Li }
2443*b2055c35SXin Li }
2444*b2055c35SXin Li return res;
2445*b2055c35SXin Li }
2446*b2055c35SXin Li
2447*b2055c35SXin Li /* Convert a function ptr value */
2448*b2055c35SXin Li
2449*b2055c35SXin Li SWIGRUNTIME int
SWIG_Python_ConvertFunctionPtr(PyObject * obj,void ** ptr,swig_type_info * ty)2450*b2055c35SXin Li SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
2451*b2055c35SXin Li if (!PyCFunction_Check(obj)) {
2452*b2055c35SXin Li return SWIG_ConvertPtr(obj, ptr, ty, 0);
2453*b2055c35SXin Li } else {
2454*b2055c35SXin Li void *vptr = 0;
2455*b2055c35SXin Li
2456*b2055c35SXin Li /* here we get the method pointer for callbacks */
2457*b2055c35SXin Li const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
2458*b2055c35SXin Li const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
2459*b2055c35SXin Li if (desc)
2460*b2055c35SXin Li desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
2461*b2055c35SXin Li if (!desc)
2462*b2055c35SXin Li return SWIG_ERROR;
2463*b2055c35SXin Li if (ty) {
2464*b2055c35SXin Li swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
2465*b2055c35SXin Li if (tc) {
2466*b2055c35SXin Li int newmemory = 0;
2467*b2055c35SXin Li *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
2468*b2055c35SXin Li assert(!newmemory); /* newmemory handling not yet implemented */
2469*b2055c35SXin Li } else {
2470*b2055c35SXin Li return SWIG_ERROR;
2471*b2055c35SXin Li }
2472*b2055c35SXin Li } else {
2473*b2055c35SXin Li *ptr = vptr;
2474*b2055c35SXin Li }
2475*b2055c35SXin Li return SWIG_OK;
2476*b2055c35SXin Li }
2477*b2055c35SXin Li }
2478*b2055c35SXin Li
2479*b2055c35SXin Li /* Convert a packed value value */
2480*b2055c35SXin Li
2481*b2055c35SXin Li SWIGRUNTIME int
SWIG_Python_ConvertPacked(PyObject * obj,void * ptr,size_t sz,swig_type_info * ty)2482*b2055c35SXin Li SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) {
2483*b2055c35SXin Li swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz);
2484*b2055c35SXin Li if (!to) return SWIG_ERROR;
2485*b2055c35SXin Li if (ty) {
2486*b2055c35SXin Li if (to != ty) {
2487*b2055c35SXin Li /* check type cast? */
2488*b2055c35SXin Li swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
2489*b2055c35SXin Li if (!tc) return SWIG_ERROR;
2490*b2055c35SXin Li }
2491*b2055c35SXin Li }
2492*b2055c35SXin Li return SWIG_OK;
2493*b2055c35SXin Li }
2494*b2055c35SXin Li
2495*b2055c35SXin Li /* -----------------------------------------------------------------------------
2496*b2055c35SXin Li * Create a new pointer object
2497*b2055c35SXin Li * ----------------------------------------------------------------------------- */
2498*b2055c35SXin Li
2499*b2055c35SXin Li /*
2500*b2055c35SXin Li Create a new instance object, without calling __init__, and set the
2501*b2055c35SXin Li 'this' attribute.
2502*b2055c35SXin Li */
2503*b2055c35SXin Li
2504*b2055c35SXin Li SWIGRUNTIME PyObject*
SWIG_Python_NewShadowInstance(SwigPyClientData * data,PyObject * swig_this)2505*b2055c35SXin Li SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this)
2506*b2055c35SXin Li {
2507*b2055c35SXin Li #if (PY_VERSION_HEX >= 0x02020000)
2508*b2055c35SXin Li PyObject *inst = 0;
2509*b2055c35SXin Li PyObject *newraw = data->newraw;
2510*b2055c35SXin Li if (newraw) {
2511*b2055c35SXin Li inst = PyObject_Call(newraw, data->newargs, NULL);
2512*b2055c35SXin Li if (inst) {
2513*b2055c35SXin Li #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2514*b2055c35SXin Li PyObject **dictptr = _PyObject_GetDictPtr(inst);
2515*b2055c35SXin Li if (dictptr != NULL) {
2516*b2055c35SXin Li PyObject *dict = *dictptr;
2517*b2055c35SXin Li if (dict == NULL) {
2518*b2055c35SXin Li dict = PyDict_New();
2519*b2055c35SXin Li *dictptr = dict;
2520*b2055c35SXin Li PyDict_SetItem(dict, SWIG_This(), swig_this);
2521*b2055c35SXin Li }
2522*b2055c35SXin Li }
2523*b2055c35SXin Li #else
2524*b2055c35SXin Li PyObject *key = SWIG_This();
2525*b2055c35SXin Li PyObject_SetAttr(inst, key, swig_this);
2526*b2055c35SXin Li #endif
2527*b2055c35SXin Li }
2528*b2055c35SXin Li } else {
2529*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
2530*b2055c35SXin Li inst = ((PyTypeObject*) data->newargs)->tp_new((PyTypeObject*) data->newargs, Py_None, Py_None);
2531*b2055c35SXin Li if (inst) {
2532*b2055c35SXin Li PyObject_SetAttr(inst, SWIG_This(), swig_this);
2533*b2055c35SXin Li Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG;
2534*b2055c35SXin Li }
2535*b2055c35SXin Li #else
2536*b2055c35SXin Li PyObject *dict = PyDict_New();
2537*b2055c35SXin Li if (dict) {
2538*b2055c35SXin Li PyDict_SetItem(dict, SWIG_This(), swig_this);
2539*b2055c35SXin Li inst = PyInstance_NewRaw(data->newargs, dict);
2540*b2055c35SXin Li Py_DECREF(dict);
2541*b2055c35SXin Li }
2542*b2055c35SXin Li #endif
2543*b2055c35SXin Li }
2544*b2055c35SXin Li return inst;
2545*b2055c35SXin Li #else
2546*b2055c35SXin Li #if (PY_VERSION_HEX >= 0x02010000)
2547*b2055c35SXin Li PyObject *inst = 0;
2548*b2055c35SXin Li PyObject *dict = PyDict_New();
2549*b2055c35SXin Li if (dict) {
2550*b2055c35SXin Li PyDict_SetItem(dict, SWIG_This(), swig_this);
2551*b2055c35SXin Li inst = PyInstance_NewRaw(data->newargs, dict);
2552*b2055c35SXin Li Py_DECREF(dict);
2553*b2055c35SXin Li }
2554*b2055c35SXin Li return (PyObject *) inst;
2555*b2055c35SXin Li #else
2556*b2055c35SXin Li PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type);
2557*b2055c35SXin Li if (inst == NULL) {
2558*b2055c35SXin Li return NULL;
2559*b2055c35SXin Li }
2560*b2055c35SXin Li inst->in_class = (PyClassObject *)data->newargs;
2561*b2055c35SXin Li Py_INCREF(inst->in_class);
2562*b2055c35SXin Li inst->in_dict = PyDict_New();
2563*b2055c35SXin Li if (inst->in_dict == NULL) {
2564*b2055c35SXin Li Py_DECREF(inst);
2565*b2055c35SXin Li return NULL;
2566*b2055c35SXin Li }
2567*b2055c35SXin Li #ifdef Py_TPFLAGS_HAVE_WEAKREFS
2568*b2055c35SXin Li inst->in_weakreflist = NULL;
2569*b2055c35SXin Li #endif
2570*b2055c35SXin Li #ifdef Py_TPFLAGS_GC
2571*b2055c35SXin Li PyObject_GC_Init(inst);
2572*b2055c35SXin Li #endif
2573*b2055c35SXin Li PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this);
2574*b2055c35SXin Li return (PyObject *) inst;
2575*b2055c35SXin Li #endif
2576*b2055c35SXin Li #endif
2577*b2055c35SXin Li }
2578*b2055c35SXin Li
2579*b2055c35SXin Li SWIGRUNTIME void
SWIG_Python_SetSwigThis(PyObject * inst,PyObject * swig_this)2580*b2055c35SXin Li SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
2581*b2055c35SXin Li {
2582*b2055c35SXin Li PyObject *dict;
2583*b2055c35SXin Li #if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2584*b2055c35SXin Li PyObject **dictptr = _PyObject_GetDictPtr(inst);
2585*b2055c35SXin Li if (dictptr != NULL) {
2586*b2055c35SXin Li dict = *dictptr;
2587*b2055c35SXin Li if (dict == NULL) {
2588*b2055c35SXin Li dict = PyDict_New();
2589*b2055c35SXin Li *dictptr = dict;
2590*b2055c35SXin Li }
2591*b2055c35SXin Li PyDict_SetItem(dict, SWIG_This(), swig_this);
2592*b2055c35SXin Li return;
2593*b2055c35SXin Li }
2594*b2055c35SXin Li #endif
2595*b2055c35SXin Li dict = PyObject_GetAttrString(inst, (char*)"__dict__");
2596*b2055c35SXin Li PyDict_SetItem(dict, SWIG_This(), swig_this);
2597*b2055c35SXin Li Py_DECREF(dict);
2598*b2055c35SXin Li }
2599*b2055c35SXin Li
2600*b2055c35SXin Li
2601*b2055c35SXin Li SWIGINTERN PyObject *
SWIG_Python_InitShadowInstance(PyObject * args)2602*b2055c35SXin Li SWIG_Python_InitShadowInstance(PyObject *args) {
2603*b2055c35SXin Li PyObject *obj[2];
2604*b2055c35SXin Li if (!SWIG_Python_UnpackTuple(args, "swiginit", 2, 2, obj)) {
2605*b2055c35SXin Li return NULL;
2606*b2055c35SXin Li } else {
2607*b2055c35SXin Li SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
2608*b2055c35SXin Li if (sthis) {
2609*b2055c35SXin Li SwigPyObject_append((PyObject*) sthis, obj[1]);
2610*b2055c35SXin Li } else {
2611*b2055c35SXin Li SWIG_Python_SetSwigThis(obj[0], obj[1]);
2612*b2055c35SXin Li }
2613*b2055c35SXin Li return SWIG_Py_Void();
2614*b2055c35SXin Li }
2615*b2055c35SXin Li }
2616*b2055c35SXin Li
2617*b2055c35SXin Li /* Create a new pointer object */
2618*b2055c35SXin Li
2619*b2055c35SXin Li SWIGRUNTIME PyObject *
SWIG_Python_NewPointerObj(PyObject * self,void * ptr,swig_type_info * type,int flags)2620*b2055c35SXin Li SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags) {
2621*b2055c35SXin Li SwigPyClientData *clientdata;
2622*b2055c35SXin Li PyObject * robj;
2623*b2055c35SXin Li int own;
2624*b2055c35SXin Li
2625*b2055c35SXin Li if (!ptr)
2626*b2055c35SXin Li return SWIG_Py_Void();
2627*b2055c35SXin Li
2628*b2055c35SXin Li clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0;
2629*b2055c35SXin Li own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
2630*b2055c35SXin Li if (clientdata && clientdata->pytype) {
2631*b2055c35SXin Li SwigPyObject *newobj;
2632*b2055c35SXin Li if (flags & SWIG_BUILTIN_TP_INIT) {
2633*b2055c35SXin Li newobj = (SwigPyObject*) self;
2634*b2055c35SXin Li if (newobj->ptr) {
2635*b2055c35SXin Li PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0);
2636*b2055c35SXin Li while (newobj->next)
2637*b2055c35SXin Li newobj = (SwigPyObject *) newobj->next;
2638*b2055c35SXin Li newobj->next = next_self;
2639*b2055c35SXin Li newobj = (SwigPyObject *)next_self;
2640*b2055c35SXin Li #ifdef SWIGPYTHON_BUILTIN
2641*b2055c35SXin Li newobj->dict = 0;
2642*b2055c35SXin Li #endif
2643*b2055c35SXin Li }
2644*b2055c35SXin Li } else {
2645*b2055c35SXin Li newobj = PyObject_New(SwigPyObject, clientdata->pytype);
2646*b2055c35SXin Li #ifdef SWIGPYTHON_BUILTIN
2647*b2055c35SXin Li newobj->dict = 0;
2648*b2055c35SXin Li #endif
2649*b2055c35SXin Li }
2650*b2055c35SXin Li if (newobj) {
2651*b2055c35SXin Li newobj->ptr = ptr;
2652*b2055c35SXin Li newobj->ty = type;
2653*b2055c35SXin Li newobj->own = own;
2654*b2055c35SXin Li newobj->next = 0;
2655*b2055c35SXin Li return (PyObject*) newobj;
2656*b2055c35SXin Li }
2657*b2055c35SXin Li return SWIG_Py_Void();
2658*b2055c35SXin Li }
2659*b2055c35SXin Li
2660*b2055c35SXin Li assert(!(flags & SWIG_BUILTIN_TP_INIT));
2661*b2055c35SXin Li
2662*b2055c35SXin Li robj = SwigPyObject_New(ptr, type, own);
2663*b2055c35SXin Li if (robj && clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
2664*b2055c35SXin Li PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
2665*b2055c35SXin Li Py_DECREF(robj);
2666*b2055c35SXin Li robj = inst;
2667*b2055c35SXin Li }
2668*b2055c35SXin Li return robj;
2669*b2055c35SXin Li }
2670*b2055c35SXin Li
2671*b2055c35SXin Li /* Create a new packed object */
2672*b2055c35SXin Li
2673*b2055c35SXin Li SWIGRUNTIMEINLINE PyObject *
SWIG_Python_NewPackedObj(void * ptr,size_t sz,swig_type_info * type)2674*b2055c35SXin Li SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
2675*b2055c35SXin Li return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
2676*b2055c35SXin Li }
2677*b2055c35SXin Li
2678*b2055c35SXin Li /* -----------------------------------------------------------------------------*
2679*b2055c35SXin Li * Get type list
2680*b2055c35SXin Li * -----------------------------------------------------------------------------*/
2681*b2055c35SXin Li
2682*b2055c35SXin Li #ifdef SWIG_LINK_RUNTIME
2683*b2055c35SXin Li void *SWIG_ReturnGlobalTypeList(void *);
2684*b2055c35SXin Li #endif
2685*b2055c35SXin Li
2686*b2055c35SXin Li SWIGRUNTIME swig_module_info *
SWIG_Python_GetModule(void * SWIGUNUSEDPARM (clientdata))2687*b2055c35SXin Li SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
2688*b2055c35SXin Li static void *type_pointer = (void *)0;
2689*b2055c35SXin Li /* first check if module already created */
2690*b2055c35SXin Li if (!type_pointer) {
2691*b2055c35SXin Li #ifdef SWIG_LINK_RUNTIME
2692*b2055c35SXin Li type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
2693*b2055c35SXin Li #else
2694*b2055c35SXin Li # ifdef SWIGPY_USE_CAPSULE
2695*b2055c35SXin Li type_pointer = PyCapsule_Import(SWIGPY_CAPSULE_NAME, 0);
2696*b2055c35SXin Li # else
2697*b2055c35SXin Li type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
2698*b2055c35SXin Li (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
2699*b2055c35SXin Li # endif
2700*b2055c35SXin Li if (PyErr_Occurred()) {
2701*b2055c35SXin Li PyErr_Clear();
2702*b2055c35SXin Li type_pointer = (void *)0;
2703*b2055c35SXin Li }
2704*b2055c35SXin Li #endif
2705*b2055c35SXin Li }
2706*b2055c35SXin Li return (swig_module_info *) type_pointer;
2707*b2055c35SXin Li }
2708*b2055c35SXin Li
2709*b2055c35SXin Li #if PY_MAJOR_VERSION < 2
2710*b2055c35SXin Li /* PyModule_AddObject function was introduced in Python 2.0. The following function
2711*b2055c35SXin Li is copied out of Python/modsupport.c in python version 2.3.4 */
2712*b2055c35SXin Li SWIGINTERN int
PyModule_AddObject(PyObject * m,char * name,PyObject * o)2713*b2055c35SXin Li PyModule_AddObject(PyObject *m, char *name, PyObject *o)
2714*b2055c35SXin Li {
2715*b2055c35SXin Li PyObject *dict;
2716*b2055c35SXin Li if (!PyModule_Check(m)) {
2717*b2055c35SXin Li PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg");
2718*b2055c35SXin Li return SWIG_ERROR;
2719*b2055c35SXin Li }
2720*b2055c35SXin Li if (!o) {
2721*b2055c35SXin Li PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value");
2722*b2055c35SXin Li return SWIG_ERROR;
2723*b2055c35SXin Li }
2724*b2055c35SXin Li
2725*b2055c35SXin Li dict = PyModule_GetDict(m);
2726*b2055c35SXin Li if (dict == NULL) {
2727*b2055c35SXin Li /* Internal error -- modules must have a dict! */
2728*b2055c35SXin Li PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__",
2729*b2055c35SXin Li PyModule_GetName(m));
2730*b2055c35SXin Li return SWIG_ERROR;
2731*b2055c35SXin Li }
2732*b2055c35SXin Li if (PyDict_SetItemString(dict, name, o))
2733*b2055c35SXin Li return SWIG_ERROR;
2734*b2055c35SXin Li Py_DECREF(o);
2735*b2055c35SXin Li return SWIG_OK;
2736*b2055c35SXin Li }
2737*b2055c35SXin Li #endif
2738*b2055c35SXin Li
2739*b2055c35SXin Li SWIGRUNTIME void
2740*b2055c35SXin Li #ifdef SWIGPY_USE_CAPSULE
SWIG_Python_DestroyModule(PyObject * obj)2741*b2055c35SXin Li SWIG_Python_DestroyModule(PyObject *obj)
2742*b2055c35SXin Li #else
2743*b2055c35SXin Li SWIG_Python_DestroyModule(void *vptr)
2744*b2055c35SXin Li #endif
2745*b2055c35SXin Li {
2746*b2055c35SXin Li #ifdef SWIGPY_USE_CAPSULE
2747*b2055c35SXin Li swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME);
2748*b2055c35SXin Li #else
2749*b2055c35SXin Li swig_module_info *swig_module = (swig_module_info *) vptr;
2750*b2055c35SXin Li #endif
2751*b2055c35SXin Li swig_type_info **types = swig_module->types;
2752*b2055c35SXin Li size_t i;
2753*b2055c35SXin Li for (i =0; i < swig_module->size; ++i) {
2754*b2055c35SXin Li swig_type_info *ty = types[i];
2755*b2055c35SXin Li if (ty->owndata) {
2756*b2055c35SXin Li SwigPyClientData *data = (SwigPyClientData *) ty->clientdata;
2757*b2055c35SXin Li if (data) SwigPyClientData_Del(data);
2758*b2055c35SXin Li }
2759*b2055c35SXin Li }
2760*b2055c35SXin Li Py_DECREF(SWIG_This());
2761*b2055c35SXin Li swig_this = NULL;
2762*b2055c35SXin Li }
2763*b2055c35SXin Li
2764*b2055c35SXin Li SWIGRUNTIME void
SWIG_Python_SetModule(swig_module_info * swig_module)2765*b2055c35SXin Li SWIG_Python_SetModule(swig_module_info *swig_module) {
2766*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
2767*b2055c35SXin Li /* Add a placeholder module object into sys.modules */
2768*b2055c35SXin Li PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION);
2769*b2055c35SXin Li #else
2770*b2055c35SXin Li static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} }; /* Sentinel */
2771*b2055c35SXin Li PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table);
2772*b2055c35SXin Li #endif
2773*b2055c35SXin Li #ifdef SWIGPY_USE_CAPSULE
2774*b2055c35SXin Li PyObject *pointer = PyCapsule_New((void *) swig_module, SWIGPY_CAPSULE_NAME, SWIG_Python_DestroyModule);
2775*b2055c35SXin Li if (pointer && module) {
2776*b2055c35SXin Li PyModule_AddObject(module, (char*)"type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer);
2777*b2055c35SXin Li } else {
2778*b2055c35SXin Li Py_XDECREF(pointer);
2779*b2055c35SXin Li }
2780*b2055c35SXin Li #else
2781*b2055c35SXin Li PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
2782*b2055c35SXin Li if (pointer && module) {
2783*b2055c35SXin Li PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
2784*b2055c35SXin Li } else {
2785*b2055c35SXin Li Py_XDECREF(pointer);
2786*b2055c35SXin Li }
2787*b2055c35SXin Li #endif
2788*b2055c35SXin Li }
2789*b2055c35SXin Li
2790*b2055c35SXin Li /* The python cached type query */
2791*b2055c35SXin Li SWIGRUNTIME PyObject *
SWIG_Python_TypeCache(void)2792*b2055c35SXin Li SWIG_Python_TypeCache(void) {
2793*b2055c35SXin Li static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New();
2794*b2055c35SXin Li return cache;
2795*b2055c35SXin Li }
2796*b2055c35SXin Li
2797*b2055c35SXin Li SWIGRUNTIME swig_type_info *
SWIG_Python_TypeQuery(const char * type)2798*b2055c35SXin Li SWIG_Python_TypeQuery(const char *type)
2799*b2055c35SXin Li {
2800*b2055c35SXin Li PyObject *cache = SWIG_Python_TypeCache();
2801*b2055c35SXin Li PyObject *key = SWIG_Python_str_FromChar(type);
2802*b2055c35SXin Li PyObject *obj = PyDict_GetItem(cache, key);
2803*b2055c35SXin Li swig_type_info *descriptor;
2804*b2055c35SXin Li if (obj) {
2805*b2055c35SXin Li #ifdef SWIGPY_USE_CAPSULE
2806*b2055c35SXin Li descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, NULL);
2807*b2055c35SXin Li #else
2808*b2055c35SXin Li descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
2809*b2055c35SXin Li #endif
2810*b2055c35SXin Li } else {
2811*b2055c35SXin Li swig_module_info *swig_module = SWIG_GetModule(0);
2812*b2055c35SXin Li descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
2813*b2055c35SXin Li if (descriptor) {
2814*b2055c35SXin Li #ifdef SWIGPY_USE_CAPSULE
2815*b2055c35SXin Li obj = PyCapsule_New((void*) descriptor, NULL, NULL);
2816*b2055c35SXin Li #else
2817*b2055c35SXin Li obj = PyCObject_FromVoidPtr(descriptor, NULL);
2818*b2055c35SXin Li #endif
2819*b2055c35SXin Li PyDict_SetItem(cache, key, obj);
2820*b2055c35SXin Li Py_DECREF(obj);
2821*b2055c35SXin Li }
2822*b2055c35SXin Li }
2823*b2055c35SXin Li Py_DECREF(key);
2824*b2055c35SXin Li return descriptor;
2825*b2055c35SXin Li }
2826*b2055c35SXin Li
2827*b2055c35SXin Li /*
2828*b2055c35SXin Li For backward compatibility only
2829*b2055c35SXin Li */
2830*b2055c35SXin Li #define SWIG_POINTER_EXCEPTION 0
2831*b2055c35SXin Li #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg)
2832*b2055c35SXin Li #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags)
2833*b2055c35SXin Li
2834*b2055c35SXin Li SWIGRUNTIME int
SWIG_Python_AddErrMesg(const char * mesg,int infront)2835*b2055c35SXin Li SWIG_Python_AddErrMesg(const char* mesg, int infront)
2836*b2055c35SXin Li {
2837*b2055c35SXin Li if (PyErr_Occurred()) {
2838*b2055c35SXin Li PyObject *type = 0;
2839*b2055c35SXin Li PyObject *value = 0;
2840*b2055c35SXin Li PyObject *traceback = 0;
2841*b2055c35SXin Li PyErr_Fetch(&type, &value, &traceback);
2842*b2055c35SXin Li if (value) {
2843*b2055c35SXin Li char *tmp;
2844*b2055c35SXin Li PyObject *old_str = PyObject_Str(value);
2845*b2055c35SXin Li Py_XINCREF(type);
2846*b2055c35SXin Li PyErr_Clear();
2847*b2055c35SXin Li if (infront) {
2848*b2055c35SXin Li PyErr_Format(type, "%s %s", mesg, tmp = SWIG_Python_str_AsChar(old_str));
2849*b2055c35SXin Li } else {
2850*b2055c35SXin Li PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg);
2851*b2055c35SXin Li }
2852*b2055c35SXin Li SWIG_Python_str_DelForPy3(tmp);
2853*b2055c35SXin Li Py_DECREF(old_str);
2854*b2055c35SXin Li }
2855*b2055c35SXin Li return 1;
2856*b2055c35SXin Li } else {
2857*b2055c35SXin Li return 0;
2858*b2055c35SXin Li }
2859*b2055c35SXin Li }
2860*b2055c35SXin Li
2861*b2055c35SXin Li SWIGRUNTIME int
SWIG_Python_ArgFail(int argnum)2862*b2055c35SXin Li SWIG_Python_ArgFail(int argnum)
2863*b2055c35SXin Li {
2864*b2055c35SXin Li if (PyErr_Occurred()) {
2865*b2055c35SXin Li /* add information about failing argument */
2866*b2055c35SXin Li char mesg[256];
2867*b2055c35SXin Li PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum);
2868*b2055c35SXin Li return SWIG_Python_AddErrMesg(mesg, 1);
2869*b2055c35SXin Li } else {
2870*b2055c35SXin Li return 0;
2871*b2055c35SXin Li }
2872*b2055c35SXin Li }
2873*b2055c35SXin Li
2874*b2055c35SXin Li SWIGRUNTIMEINLINE const char *
SwigPyObject_GetDesc(PyObject * self)2875*b2055c35SXin Li SwigPyObject_GetDesc(PyObject *self)
2876*b2055c35SXin Li {
2877*b2055c35SXin Li SwigPyObject *v = (SwigPyObject *)self;
2878*b2055c35SXin Li swig_type_info *ty = v ? v->ty : 0;
2879*b2055c35SXin Li return ty ? ty->str : "";
2880*b2055c35SXin Li }
2881*b2055c35SXin Li
2882*b2055c35SXin Li SWIGRUNTIME void
SWIG_Python_TypeError(const char * type,PyObject * obj)2883*b2055c35SXin Li SWIG_Python_TypeError(const char *type, PyObject *obj)
2884*b2055c35SXin Li {
2885*b2055c35SXin Li if (type) {
2886*b2055c35SXin Li #if defined(SWIG_COBJECT_TYPES)
2887*b2055c35SXin Li if (obj && SwigPyObject_Check(obj)) {
2888*b2055c35SXin Li const char *otype = (const char *) SwigPyObject_GetDesc(obj);
2889*b2055c35SXin Li if (otype) {
2890*b2055c35SXin Li PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received",
2891*b2055c35SXin Li type, otype);
2892*b2055c35SXin Li return;
2893*b2055c35SXin Li }
2894*b2055c35SXin Li } else
2895*b2055c35SXin Li #endif
2896*b2055c35SXin Li {
2897*b2055c35SXin Li const char *otype = (obj ? obj->ob_type->tp_name : 0);
2898*b2055c35SXin Li if (otype) {
2899*b2055c35SXin Li PyObject *str = PyObject_Str(obj);
2900*b2055c35SXin Li const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0;
2901*b2055c35SXin Li if (cstr) {
2902*b2055c35SXin Li PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
2903*b2055c35SXin Li type, otype, cstr);
2904*b2055c35SXin Li SWIG_Python_str_DelForPy3(cstr);
2905*b2055c35SXin Li } else {
2906*b2055c35SXin Li PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
2907*b2055c35SXin Li type, otype);
2908*b2055c35SXin Li }
2909*b2055c35SXin Li Py_XDECREF(str);
2910*b2055c35SXin Li return;
2911*b2055c35SXin Li }
2912*b2055c35SXin Li }
2913*b2055c35SXin Li PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
2914*b2055c35SXin Li } else {
2915*b2055c35SXin Li PyErr_Format(PyExc_TypeError, "unexpected type is received");
2916*b2055c35SXin Li }
2917*b2055c35SXin Li }
2918*b2055c35SXin Li
2919*b2055c35SXin Li
2920*b2055c35SXin Li /* Convert a pointer value, signal an exception on a type mismatch */
2921*b2055c35SXin Li SWIGRUNTIME void *
SWIG_Python_MustGetPtr(PyObject * obj,swig_type_info * ty,int SWIGUNUSEDPARM (argnum),int flags)2922*b2055c35SXin Li SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags) {
2923*b2055c35SXin Li void *result;
2924*b2055c35SXin Li if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
2925*b2055c35SXin Li PyErr_Clear();
2926*b2055c35SXin Li #if SWIG_POINTER_EXCEPTION
2927*b2055c35SXin Li if (flags) {
2928*b2055c35SXin Li SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
2929*b2055c35SXin Li SWIG_Python_ArgFail(argnum);
2930*b2055c35SXin Li }
2931*b2055c35SXin Li #endif
2932*b2055c35SXin Li }
2933*b2055c35SXin Li return result;
2934*b2055c35SXin Li }
2935*b2055c35SXin Li
2936*b2055c35SXin Li #ifdef SWIGPYTHON_BUILTIN
2937*b2055c35SXin Li SWIGRUNTIME int
SWIG_Python_NonDynamicSetAttr(PyObject * obj,PyObject * name,PyObject * value)2938*b2055c35SXin Li SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
2939*b2055c35SXin Li PyTypeObject *tp = obj->ob_type;
2940*b2055c35SXin Li PyObject *descr;
2941*b2055c35SXin Li PyObject *encoded_name;
2942*b2055c35SXin Li descrsetfunc f;
2943*b2055c35SXin Li int res = -1;
2944*b2055c35SXin Li
2945*b2055c35SXin Li # ifdef Py_USING_UNICODE
2946*b2055c35SXin Li if (PyString_Check(name)) {
2947*b2055c35SXin Li name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL);
2948*b2055c35SXin Li if (!name)
2949*b2055c35SXin Li return -1;
2950*b2055c35SXin Li } else if (!PyUnicode_Check(name))
2951*b2055c35SXin Li # else
2952*b2055c35SXin Li if (!PyString_Check(name))
2953*b2055c35SXin Li # endif
2954*b2055c35SXin Li {
2955*b2055c35SXin Li PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name);
2956*b2055c35SXin Li return -1;
2957*b2055c35SXin Li } else {
2958*b2055c35SXin Li Py_INCREF(name);
2959*b2055c35SXin Li }
2960*b2055c35SXin Li
2961*b2055c35SXin Li if (!tp->tp_dict) {
2962*b2055c35SXin Li if (PyType_Ready(tp) < 0)
2963*b2055c35SXin Li goto done;
2964*b2055c35SXin Li }
2965*b2055c35SXin Li
2966*b2055c35SXin Li descr = _PyType_Lookup(tp, name);
2967*b2055c35SXin Li f = NULL;
2968*b2055c35SXin Li if (descr != NULL)
2969*b2055c35SXin Li f = descr->ob_type->tp_descr_set;
2970*b2055c35SXin Li if (!f) {
2971*b2055c35SXin Li if (PyString_Check(name)) {
2972*b2055c35SXin Li encoded_name = name;
2973*b2055c35SXin Li Py_INCREF(name);
2974*b2055c35SXin Li } else {
2975*b2055c35SXin Li encoded_name = PyUnicode_AsUTF8String(name);
2976*b2055c35SXin Li }
2977*b2055c35SXin Li PyErr_Format(PyExc_AttributeError, "'%.100s' object has no attribute '%.200s'", tp->tp_name, PyString_AsString(encoded_name));
2978*b2055c35SXin Li Py_DECREF(encoded_name);
2979*b2055c35SXin Li } else {
2980*b2055c35SXin Li res = f(descr, obj, value);
2981*b2055c35SXin Li }
2982*b2055c35SXin Li
2983*b2055c35SXin Li done:
2984*b2055c35SXin Li Py_DECREF(name);
2985*b2055c35SXin Li return res;
2986*b2055c35SXin Li }
2987*b2055c35SXin Li #endif
2988*b2055c35SXin Li
2989*b2055c35SXin Li
2990*b2055c35SXin Li #ifdef __cplusplus
2991*b2055c35SXin Li }
2992*b2055c35SXin Li #endif
2993*b2055c35SXin Li
2994*b2055c35SXin Li
2995*b2055c35SXin Li
2996*b2055c35SXin Li #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
2997*b2055c35SXin Li
2998*b2055c35SXin Li #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else
2999*b2055c35SXin Li
3000*b2055c35SXin Li
3001*b2055c35SXin Li
3002*b2055c35SXin Li #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0)
3003*b2055c35SXin Li
3004*b2055c35SXin Li
3005*b2055c35SXin Li /* -------- TYPES TABLE (BEGIN) -------- */
3006*b2055c35SXin Li
3007*b2055c35SXin Li #define SWIGTYPE_p_char swig_types[0]
3008*b2055c35SXin Li #define SWIGTYPE_p_int swig_types[1]
3009*b2055c35SXin Li #define SWIGTYPE_p_uint8_t swig_types[2]
3010*b2055c35SXin Li static swig_type_info *swig_types[4];
3011*b2055c35SXin Li static swig_module_info swig_module = {swig_types, 3, 0, 0, 0, 0};
3012*b2055c35SXin Li #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
3013*b2055c35SXin Li #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
3014*b2055c35SXin Li
3015*b2055c35SXin Li /* -------- TYPES TABLE (END) -------- */
3016*b2055c35SXin Li
3017*b2055c35SXin Li #if (PY_VERSION_HEX <= 0x02000000)
3018*b2055c35SXin Li # if !defined(SWIG_PYTHON_CLASSIC)
3019*b2055c35SXin Li # error "This python version requires swig to be run with the '-classic' option"
3020*b2055c35SXin Li # endif
3021*b2055c35SXin Li #endif
3022*b2055c35SXin Li
3023*b2055c35SXin Li /*-----------------------------------------------
3024*b2055c35SXin Li @(target):= _libwebp.so
3025*b2055c35SXin Li ------------------------------------------------*/
3026*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
3027*b2055c35SXin Li # define SWIG_init PyInit__libwebp
3028*b2055c35SXin Li
3029*b2055c35SXin Li #else
3030*b2055c35SXin Li # define SWIG_init init_libwebp
3031*b2055c35SXin Li
3032*b2055c35SXin Li #endif
3033*b2055c35SXin Li #define SWIG_name "_libwebp"
3034*b2055c35SXin Li
3035*b2055c35SXin Li #define SWIGVERSION 0x030012
3036*b2055c35SXin Li #define SWIG_VERSION SWIGVERSION
3037*b2055c35SXin Li
3038*b2055c35SXin Li
3039*b2055c35SXin Li #define SWIG_as_voidptr(a) (void *)((const void *)(a))
3040*b2055c35SXin Li #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a))
3041*b2055c35SXin Li
3042*b2055c35SXin Li
3043*b2055c35SXin Li SWIGINTERNINLINE PyObject*
SWIG_From_int(int value)3044*b2055c35SXin Li SWIG_From_int (int value)
3045*b2055c35SXin Li {
3046*b2055c35SXin Li return PyInt_FromLong((long) value);
3047*b2055c35SXin Li }
3048*b2055c35SXin Li
3049*b2055c35SXin Li
3050*b2055c35SXin Li SWIGINTERN swig_type_info*
SWIG_pchar_descriptor(void)3051*b2055c35SXin Li SWIG_pchar_descriptor(void)
3052*b2055c35SXin Li {
3053*b2055c35SXin Li static int init = 0;
3054*b2055c35SXin Li static swig_type_info* info = 0;
3055*b2055c35SXin Li if (!init) {
3056*b2055c35SXin Li info = SWIG_TypeQuery("_p_char");
3057*b2055c35SXin Li init = 1;
3058*b2055c35SXin Li }
3059*b2055c35SXin Li return info;
3060*b2055c35SXin Li }
3061*b2055c35SXin Li
3062*b2055c35SXin Li
3063*b2055c35SXin Li SWIGINTERN int
SWIG_AsCharPtrAndSize(PyObject * obj,char ** cptr,size_t * psize,int * alloc)3064*b2055c35SXin Li SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
3065*b2055c35SXin Li {
3066*b2055c35SXin Li #if PY_VERSION_HEX>=0x03000000
3067*b2055c35SXin Li #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3068*b2055c35SXin Li if (PyBytes_Check(obj))
3069*b2055c35SXin Li #else
3070*b2055c35SXin Li if (PyUnicode_Check(obj))
3071*b2055c35SXin Li #endif
3072*b2055c35SXin Li #else
3073*b2055c35SXin Li if (PyString_Check(obj))
3074*b2055c35SXin Li #endif
3075*b2055c35SXin Li {
3076*b2055c35SXin Li char *cstr; Py_ssize_t len;
3077*b2055c35SXin Li #if PY_VERSION_HEX>=0x03000000
3078*b2055c35SXin Li #if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3079*b2055c35SXin Li if (!alloc && cptr) {
3080*b2055c35SXin Li /* We can't allow converting without allocation, since the internal
3081*b2055c35SXin Li representation of string in Python 3 is UCS-2/UCS-4 but we require
3082*b2055c35SXin Li a UTF-8 representation.
3083*b2055c35SXin Li TODO(bhy) More detailed explanation */
3084*b2055c35SXin Li return SWIG_RuntimeError;
3085*b2055c35SXin Li }
3086*b2055c35SXin Li obj = PyUnicode_AsUTF8String(obj);
3087*b2055c35SXin Li if(alloc) *alloc = SWIG_NEWOBJ;
3088*b2055c35SXin Li #endif
3089*b2055c35SXin Li PyBytes_AsStringAndSize(obj, &cstr, &len);
3090*b2055c35SXin Li #else
3091*b2055c35SXin Li PyString_AsStringAndSize(obj, &cstr, &len);
3092*b2055c35SXin Li #endif
3093*b2055c35SXin Li if (cptr) {
3094*b2055c35SXin Li if (alloc) {
3095*b2055c35SXin Li /*
3096*b2055c35SXin Li In python the user should not be able to modify the inner
3097*b2055c35SXin Li string representation. To warranty that, if you define
3098*b2055c35SXin Li SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
3099*b2055c35SXin Li buffer is always returned.
3100*b2055c35SXin Li
3101*b2055c35SXin Li The default behavior is just to return the pointer value,
3102*b2055c35SXin Li so, be careful.
3103*b2055c35SXin Li */
3104*b2055c35SXin Li #if defined(SWIG_PYTHON_SAFE_CSTRINGS)
3105*b2055c35SXin Li if (*alloc != SWIG_OLDOBJ)
3106*b2055c35SXin Li #else
3107*b2055c35SXin Li if (*alloc == SWIG_NEWOBJ)
3108*b2055c35SXin Li #endif
3109*b2055c35SXin Li {
3110*b2055c35SXin Li *cptr = (char *)memcpy(malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
3111*b2055c35SXin Li *alloc = SWIG_NEWOBJ;
3112*b2055c35SXin Li } else {
3113*b2055c35SXin Li *cptr = cstr;
3114*b2055c35SXin Li *alloc = SWIG_OLDOBJ;
3115*b2055c35SXin Li }
3116*b2055c35SXin Li } else {
3117*b2055c35SXin Li #if PY_VERSION_HEX>=0x03000000
3118*b2055c35SXin Li #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3119*b2055c35SXin Li *cptr = PyBytes_AsString(obj);
3120*b2055c35SXin Li #else
3121*b2055c35SXin Li assert(0); /* Should never reach here with Unicode strings in Python 3 */
3122*b2055c35SXin Li #endif
3123*b2055c35SXin Li #else
3124*b2055c35SXin Li *cptr = SWIG_Python_str_AsChar(obj);
3125*b2055c35SXin Li #endif
3126*b2055c35SXin Li }
3127*b2055c35SXin Li }
3128*b2055c35SXin Li if (psize) *psize = len + 1;
3129*b2055c35SXin Li #if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3130*b2055c35SXin Li Py_XDECREF(obj);
3131*b2055c35SXin Li #endif
3132*b2055c35SXin Li return SWIG_OK;
3133*b2055c35SXin Li } else {
3134*b2055c35SXin Li #if defined(SWIG_PYTHON_2_UNICODE)
3135*b2055c35SXin Li #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
3136*b2055c35SXin Li #error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once"
3137*b2055c35SXin Li #endif
3138*b2055c35SXin Li #if PY_VERSION_HEX<0x03000000
3139*b2055c35SXin Li if (PyUnicode_Check(obj)) {
3140*b2055c35SXin Li char *cstr; Py_ssize_t len;
3141*b2055c35SXin Li if (!alloc && cptr) {
3142*b2055c35SXin Li return SWIG_RuntimeError;
3143*b2055c35SXin Li }
3144*b2055c35SXin Li obj = PyUnicode_AsUTF8String(obj);
3145*b2055c35SXin Li if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) {
3146*b2055c35SXin Li if (cptr) {
3147*b2055c35SXin Li if (alloc) *alloc = SWIG_NEWOBJ;
3148*b2055c35SXin Li *cptr = (char *)memcpy(malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
3149*b2055c35SXin Li }
3150*b2055c35SXin Li if (psize) *psize = len + 1;
3151*b2055c35SXin Li
3152*b2055c35SXin Li Py_XDECREF(obj);
3153*b2055c35SXin Li return SWIG_OK;
3154*b2055c35SXin Li } else {
3155*b2055c35SXin Li Py_XDECREF(obj);
3156*b2055c35SXin Li }
3157*b2055c35SXin Li }
3158*b2055c35SXin Li #endif
3159*b2055c35SXin Li #endif
3160*b2055c35SXin Li
3161*b2055c35SXin Li swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
3162*b2055c35SXin Li if (pchar_descriptor) {
3163*b2055c35SXin Li void* vptr = 0;
3164*b2055c35SXin Li if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
3165*b2055c35SXin Li if (cptr) *cptr = (char *) vptr;
3166*b2055c35SXin Li if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
3167*b2055c35SXin Li if (alloc) *alloc = SWIG_OLDOBJ;
3168*b2055c35SXin Li return SWIG_OK;
3169*b2055c35SXin Li }
3170*b2055c35SXin Li }
3171*b2055c35SXin Li }
3172*b2055c35SXin Li return SWIG_TypeError;
3173*b2055c35SXin Li }
3174*b2055c35SXin Li
3175*b2055c35SXin Li
3176*b2055c35SXin Li SWIGINTERN int
SWIG_AsVal_double(PyObject * obj,double * val)3177*b2055c35SXin Li SWIG_AsVal_double (PyObject *obj, double *val)
3178*b2055c35SXin Li {
3179*b2055c35SXin Li int res = SWIG_TypeError;
3180*b2055c35SXin Li if (PyFloat_Check(obj)) {
3181*b2055c35SXin Li if (val) *val = PyFloat_AsDouble(obj);
3182*b2055c35SXin Li return SWIG_OK;
3183*b2055c35SXin Li #if PY_VERSION_HEX < 0x03000000
3184*b2055c35SXin Li } else if (PyInt_Check(obj)) {
3185*b2055c35SXin Li if (val) *val = (double) PyInt_AsLong(obj);
3186*b2055c35SXin Li return SWIG_OK;
3187*b2055c35SXin Li #endif
3188*b2055c35SXin Li } else if (PyLong_Check(obj)) {
3189*b2055c35SXin Li double v = PyLong_AsDouble(obj);
3190*b2055c35SXin Li if (!PyErr_Occurred()) {
3191*b2055c35SXin Li if (val) *val = v;
3192*b2055c35SXin Li return SWIG_OK;
3193*b2055c35SXin Li } else {
3194*b2055c35SXin Li PyErr_Clear();
3195*b2055c35SXin Li }
3196*b2055c35SXin Li }
3197*b2055c35SXin Li #ifdef SWIG_PYTHON_CAST_MODE
3198*b2055c35SXin Li {
3199*b2055c35SXin Li int dispatch = 0;
3200*b2055c35SXin Li double d = PyFloat_AsDouble(obj);
3201*b2055c35SXin Li if (!PyErr_Occurred()) {
3202*b2055c35SXin Li if (val) *val = d;
3203*b2055c35SXin Li return SWIG_AddCast(SWIG_OK);
3204*b2055c35SXin Li } else {
3205*b2055c35SXin Li PyErr_Clear();
3206*b2055c35SXin Li }
3207*b2055c35SXin Li if (!dispatch) {
3208*b2055c35SXin Li long v = PyLong_AsLong(obj);
3209*b2055c35SXin Li if (!PyErr_Occurred()) {
3210*b2055c35SXin Li if (val) *val = v;
3211*b2055c35SXin Li return SWIG_AddCast(SWIG_AddCast(SWIG_OK));
3212*b2055c35SXin Li } else {
3213*b2055c35SXin Li PyErr_Clear();
3214*b2055c35SXin Li }
3215*b2055c35SXin Li }
3216*b2055c35SXin Li }
3217*b2055c35SXin Li #endif
3218*b2055c35SXin Li return res;
3219*b2055c35SXin Li }
3220*b2055c35SXin Li
3221*b2055c35SXin Li
3222*b2055c35SXin Li #include <float.h>
3223*b2055c35SXin Li
3224*b2055c35SXin Li
3225*b2055c35SXin Li #include <math.h>
3226*b2055c35SXin Li
3227*b2055c35SXin Li
3228*b2055c35SXin Li SWIGINTERNINLINE int
SWIG_CanCastAsInteger(double * d,double min,double max)3229*b2055c35SXin Li SWIG_CanCastAsInteger(double *d, double min, double max) {
3230*b2055c35SXin Li double x = *d;
3231*b2055c35SXin Li if ((min <= x && x <= max)) {
3232*b2055c35SXin Li double fx = floor(x);
3233*b2055c35SXin Li double cx = ceil(x);
3234*b2055c35SXin Li double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */
3235*b2055c35SXin Li if ((errno == EDOM) || (errno == ERANGE)) {
3236*b2055c35SXin Li errno = 0;
3237*b2055c35SXin Li } else {
3238*b2055c35SXin Li double summ, reps, diff;
3239*b2055c35SXin Li if (rd < x) {
3240*b2055c35SXin Li diff = x - rd;
3241*b2055c35SXin Li } else if (rd > x) {
3242*b2055c35SXin Li diff = rd - x;
3243*b2055c35SXin Li } else {
3244*b2055c35SXin Li return 1;
3245*b2055c35SXin Li }
3246*b2055c35SXin Li summ = rd + x;
3247*b2055c35SXin Li reps = diff/summ;
3248*b2055c35SXin Li if (reps < 8*DBL_EPSILON) {
3249*b2055c35SXin Li *d = rd;
3250*b2055c35SXin Li return 1;
3251*b2055c35SXin Li }
3252*b2055c35SXin Li }
3253*b2055c35SXin Li }
3254*b2055c35SXin Li return 0;
3255*b2055c35SXin Li }
3256*b2055c35SXin Li
3257*b2055c35SXin Li
3258*b2055c35SXin Li SWIGINTERN int
SWIG_AsVal_unsigned_SS_long(PyObject * obj,unsigned long * val)3259*b2055c35SXin Li SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
3260*b2055c35SXin Li {
3261*b2055c35SXin Li #if PY_VERSION_HEX < 0x03000000
3262*b2055c35SXin Li if (PyInt_Check(obj)) {
3263*b2055c35SXin Li long v = PyInt_AsLong(obj);
3264*b2055c35SXin Li if (v >= 0) {
3265*b2055c35SXin Li if (val) *val = v;
3266*b2055c35SXin Li return SWIG_OK;
3267*b2055c35SXin Li } else {
3268*b2055c35SXin Li return SWIG_OverflowError;
3269*b2055c35SXin Li }
3270*b2055c35SXin Li } else
3271*b2055c35SXin Li #endif
3272*b2055c35SXin Li if (PyLong_Check(obj)) {
3273*b2055c35SXin Li unsigned long v = PyLong_AsUnsignedLong(obj);
3274*b2055c35SXin Li if (!PyErr_Occurred()) {
3275*b2055c35SXin Li if (val) *val = v;
3276*b2055c35SXin Li return SWIG_OK;
3277*b2055c35SXin Li } else {
3278*b2055c35SXin Li PyErr_Clear();
3279*b2055c35SXin Li return SWIG_OverflowError;
3280*b2055c35SXin Li }
3281*b2055c35SXin Li }
3282*b2055c35SXin Li #ifdef SWIG_PYTHON_CAST_MODE
3283*b2055c35SXin Li {
3284*b2055c35SXin Li int dispatch = 0;
3285*b2055c35SXin Li unsigned long v = PyLong_AsUnsignedLong(obj);
3286*b2055c35SXin Li if (!PyErr_Occurred()) {
3287*b2055c35SXin Li if (val) *val = v;
3288*b2055c35SXin Li return SWIG_AddCast(SWIG_OK);
3289*b2055c35SXin Li } else {
3290*b2055c35SXin Li PyErr_Clear();
3291*b2055c35SXin Li }
3292*b2055c35SXin Li if (!dispatch) {
3293*b2055c35SXin Li double d;
3294*b2055c35SXin Li int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
3295*b2055c35SXin Li if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
3296*b2055c35SXin Li if (val) *val = (unsigned long)(d);
3297*b2055c35SXin Li return res;
3298*b2055c35SXin Li }
3299*b2055c35SXin Li }
3300*b2055c35SXin Li }
3301*b2055c35SXin Li #endif
3302*b2055c35SXin Li return SWIG_TypeError;
3303*b2055c35SXin Li }
3304*b2055c35SXin Li
3305*b2055c35SXin Li
3306*b2055c35SXin Li #include <limits.h>
3307*b2055c35SXin Li #if !defined(SWIG_NO_LLONG_MAX)
3308*b2055c35SXin Li # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
3309*b2055c35SXin Li # define LLONG_MAX __LONG_LONG_MAX__
3310*b2055c35SXin Li # define LLONG_MIN (-LLONG_MAX - 1LL)
3311*b2055c35SXin Li # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
3312*b2055c35SXin Li # endif
3313*b2055c35SXin Li #endif
3314*b2055c35SXin Li
3315*b2055c35SXin Li
3316*b2055c35SXin Li #if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE)
3317*b2055c35SXin Li # define SWIG_LONG_LONG_AVAILABLE
3318*b2055c35SXin Li #endif
3319*b2055c35SXin Li
3320*b2055c35SXin Li
3321*b2055c35SXin Li #ifdef SWIG_LONG_LONG_AVAILABLE
3322*b2055c35SXin Li SWIGINTERN int
SWIG_AsVal_unsigned_SS_long_SS_long(PyObject * obj,unsigned long long * val)3323*b2055c35SXin Li SWIG_AsVal_unsigned_SS_long_SS_long (PyObject *obj, unsigned long long *val)
3324*b2055c35SXin Li {
3325*b2055c35SXin Li int res = SWIG_TypeError;
3326*b2055c35SXin Li if (PyLong_Check(obj)) {
3327*b2055c35SXin Li unsigned long long v = PyLong_AsUnsignedLongLong(obj);
3328*b2055c35SXin Li if (!PyErr_Occurred()) {
3329*b2055c35SXin Li if (val) *val = v;
3330*b2055c35SXin Li return SWIG_OK;
3331*b2055c35SXin Li } else {
3332*b2055c35SXin Li PyErr_Clear();
3333*b2055c35SXin Li res = SWIG_OverflowError;
3334*b2055c35SXin Li }
3335*b2055c35SXin Li } else {
3336*b2055c35SXin Li unsigned long v;
3337*b2055c35SXin Li res = SWIG_AsVal_unsigned_SS_long (obj,&v);
3338*b2055c35SXin Li if (SWIG_IsOK(res)) {
3339*b2055c35SXin Li if (val) *val = v;
3340*b2055c35SXin Li return res;
3341*b2055c35SXin Li }
3342*b2055c35SXin Li }
3343*b2055c35SXin Li #ifdef SWIG_PYTHON_CAST_MODE
3344*b2055c35SXin Li {
3345*b2055c35SXin Li const double mant_max = 1LL << DBL_MANT_DIG;
3346*b2055c35SXin Li double d;
3347*b2055c35SXin Li res = SWIG_AsVal_double (obj,&d);
3348*b2055c35SXin Li if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, 0, mant_max))
3349*b2055c35SXin Li return SWIG_OverflowError;
3350*b2055c35SXin Li if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) {
3351*b2055c35SXin Li if (val) *val = (unsigned long long)(d);
3352*b2055c35SXin Li return SWIG_AddCast(res);
3353*b2055c35SXin Li }
3354*b2055c35SXin Li res = SWIG_TypeError;
3355*b2055c35SXin Li }
3356*b2055c35SXin Li #endif
3357*b2055c35SXin Li return res;
3358*b2055c35SXin Li }
3359*b2055c35SXin Li #endif
3360*b2055c35SXin Li
3361*b2055c35SXin Li
3362*b2055c35SXin Li SWIGINTERNINLINE int
SWIG_AsVal_size_t(PyObject * obj,size_t * val)3363*b2055c35SXin Li SWIG_AsVal_size_t (PyObject * obj, size_t *val)
3364*b2055c35SXin Li {
3365*b2055c35SXin Li int res = SWIG_TypeError;
3366*b2055c35SXin Li #ifdef SWIG_LONG_LONG_AVAILABLE
3367*b2055c35SXin Li if (sizeof(size_t) <= sizeof(unsigned long)) {
3368*b2055c35SXin Li #endif
3369*b2055c35SXin Li unsigned long v;
3370*b2055c35SXin Li res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0);
3371*b2055c35SXin Li if (SWIG_IsOK(res) && val) *val = (size_t)(v);
3372*b2055c35SXin Li #ifdef SWIG_LONG_LONG_AVAILABLE
3373*b2055c35SXin Li } else if (sizeof(size_t) <= sizeof(unsigned long long)) {
3374*b2055c35SXin Li unsigned long long v;
3375*b2055c35SXin Li res = SWIG_AsVal_unsigned_SS_long_SS_long (obj, val ? &v : 0);
3376*b2055c35SXin Li if (SWIG_IsOK(res) && val) *val = (size_t)(v);
3377*b2055c35SXin Li }
3378*b2055c35SXin Li #endif
3379*b2055c35SXin Li return res;
3380*b2055c35SXin Li }
3381*b2055c35SXin Li
3382*b2055c35SXin Li
3383*b2055c35SXin Li #include "webp/decode.h"
3384*b2055c35SXin Li #include "webp/encode.h"
3385*b2055c35SXin Li
3386*b2055c35SXin Li
ReturnedBufferSize(const char * function,int * width,int * height)3387*b2055c35SXin Li static size_t ReturnedBufferSize(
3388*b2055c35SXin Li const char* function, int* width, int* height) {
3389*b2055c35SXin Li static const struct sizemap {
3390*b2055c35SXin Li const char* function;
3391*b2055c35SXin Li int size_multiplier;
3392*b2055c35SXin Li } size_map[] = {
3393*b2055c35SXin Li #ifdef SWIGJAVA
3394*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_WebPDecodeRGB", 3 },
3395*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_WebPDecodeRGBA", 4 },
3396*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_WebPDecodeARGB", 4 },
3397*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_WebPDecodeBGR", 3 },
3398*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_WebPDecodeBGRA", 4 },
3399*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGB", 1 },
3400*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGR", 1 },
3401*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGBA", 1 },
3402*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGRA", 1 },
3403*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGB", 1 },
3404*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGR", 1 },
3405*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGBA", 1 },
3406*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGRA", 1 },
3407*b2055c35SXin Li #endif
3408*b2055c35SXin Li #ifdef SWIGPYTHON
3409*b2055c35SXin Li { "WebPDecodeRGB", 3 },
3410*b2055c35SXin Li { "WebPDecodeRGBA", 4 },
3411*b2055c35SXin Li { "WebPDecodeARGB", 4 },
3412*b2055c35SXin Li { "WebPDecodeBGR", 3 },
3413*b2055c35SXin Li { "WebPDecodeBGRA", 4 },
3414*b2055c35SXin Li { "wrap_WebPEncodeRGB", 1 },
3415*b2055c35SXin Li { "wrap_WebPEncodeBGR", 1 },
3416*b2055c35SXin Li { "wrap_WebPEncodeRGBA", 1 },
3417*b2055c35SXin Li { "wrap_WebPEncodeBGRA", 1 },
3418*b2055c35SXin Li { "wrap_WebPEncodeLosslessRGB", 1 },
3419*b2055c35SXin Li { "wrap_WebPEncodeLosslessBGR", 1 },
3420*b2055c35SXin Li { "wrap_WebPEncodeLosslessRGBA", 1 },
3421*b2055c35SXin Li { "wrap_WebPEncodeLosslessBGRA", 1 },
3422*b2055c35SXin Li #endif
3423*b2055c35SXin Li { NULL, 0 }
3424*b2055c35SXin Li };
3425*b2055c35SXin Li const struct sizemap* p;
3426*b2055c35SXin Li size_t size = 0;
3427*b2055c35SXin Li
3428*b2055c35SXin Li for (p = size_map; p->function; ++p) {
3429*b2055c35SXin Li if (!strcmp(function, p->function)) {
3430*b2055c35SXin Li size = *width * *height * p->size_multiplier;
3431*b2055c35SXin Li break;
3432*b2055c35SXin Li }
3433*b2055c35SXin Li }
3434*b2055c35SXin Li
3435*b2055c35SXin Li return size;
3436*b2055c35SXin Li }
3437*b2055c35SXin Li
3438*b2055c35SXin Li
3439*b2055c35SXin Li typedef size_t (*WebPEncodeFunction)(const uint8_t* rgb,
3440*b2055c35SXin Li int width, int height, int stride,
3441*b2055c35SXin Li float quality_factor, uint8_t** output);
3442*b2055c35SXin Li typedef size_t (*WebPEncodeLosslessFunction)(const uint8_t* rgb,
3443*b2055c35SXin Li int width, int height, int stride,
3444*b2055c35SXin Li uint8_t** output);
3445*b2055c35SXin Li
EncodeLossy(const uint8_t * rgb,int width,int height,int stride,float quality_factor,WebPEncodeFunction encfn,int * output_size,int * unused)3446*b2055c35SXin Li static uint8_t* EncodeLossy(const uint8_t* rgb,
3447*b2055c35SXin Li int width, int height, int stride,
3448*b2055c35SXin Li float quality_factor,
3449*b2055c35SXin Li WebPEncodeFunction encfn,
3450*b2055c35SXin Li int* output_size, int* unused) {
3451*b2055c35SXin Li uint8_t* output = NULL;
3452*b2055c35SXin Li const size_t image_size =
3453*b2055c35SXin Li encfn(rgb, width, height, stride, quality_factor, &output);
3454*b2055c35SXin Li // the values of following two will be interpreted by ReturnedBufferSize()
3455*b2055c35SXin Li // as 'width' and 'height' in the size calculation.
3456*b2055c35SXin Li *output_size = image_size;
3457*b2055c35SXin Li *unused = 1;
3458*b2055c35SXin Li return image_size ? output : NULL;
3459*b2055c35SXin Li }
3460*b2055c35SXin Li
EncodeLossless(const uint8_t * rgb,int width,int height,int stride,WebPEncodeLosslessFunction encfn,int * output_size,int * unused)3461*b2055c35SXin Li static uint8_t* EncodeLossless(const uint8_t* rgb,
3462*b2055c35SXin Li int width, int height, int stride,
3463*b2055c35SXin Li WebPEncodeLosslessFunction encfn,
3464*b2055c35SXin Li int* output_size, int* unused) {
3465*b2055c35SXin Li uint8_t* output = NULL;
3466*b2055c35SXin Li const size_t image_size = encfn(rgb, width, height, stride, &output);
3467*b2055c35SXin Li // the values of the following two will be interpreted by
3468*b2055c35SXin Li // ReturnedBufferSize() as 'width' and 'height' in the size calculation.
3469*b2055c35SXin Li *output_size = image_size;
3470*b2055c35SXin Li *unused = 1;
3471*b2055c35SXin Li return image_size ? output : NULL;
3472*b2055c35SXin Li }
3473*b2055c35SXin Li
3474*b2055c35SXin Li
3475*b2055c35SXin Li // Changes the return type of WebPEncode* to more closely match Decode*.
3476*b2055c35SXin Li // This also makes it easier to wrap the output buffer in a native type rather
3477*b2055c35SXin Li // than dealing with the return pointer.
3478*b2055c35SXin Li // The additional parameters are to allow reuse of ReturnedBufferSize(),
3479*b2055c35SXin Li // unused2 and output_size will be used in this case.
3480*b2055c35SXin Li #define LOSSY_WRAPPER(FUNC) \
3481*b2055c35SXin Li static uint8_t* wrap_##FUNC( \
3482*b2055c35SXin Li const uint8_t* rgb, int* unused1, int* unused2, int* output_size, \
3483*b2055c35SXin Li int width, int height, int stride, float quality_factor) { \
3484*b2055c35SXin Li return EncodeLossy(rgb, width, height, stride, quality_factor, \
3485*b2055c35SXin Li FUNC, output_size, unused2); \
3486*b2055c35SXin Li } \
3487*b2055c35SXin Li
3488*b2055c35SXin Li LOSSY_WRAPPER(WebPEncodeRGB)
LOSSY_WRAPPER(WebPEncodeBGR)3489*b2055c35SXin Li LOSSY_WRAPPER(WebPEncodeBGR)
3490*b2055c35SXin Li LOSSY_WRAPPER(WebPEncodeRGBA)
3491*b2055c35SXin Li LOSSY_WRAPPER(WebPEncodeBGRA)
3492*b2055c35SXin Li
3493*b2055c35SXin Li #undef LOSSY_WRAPPER
3494*b2055c35SXin Li
3495*b2055c35SXin Li #define LOSSLESS_WRAPPER(FUNC) \
3496*b2055c35SXin Li static uint8_t* wrap_##FUNC( \
3497*b2055c35SXin Li const uint8_t* rgb, int* unused1, int* unused2, int* output_size, \
3498*b2055c35SXin Li int width, int height, int stride) { \
3499*b2055c35SXin Li return EncodeLossless(rgb, width, height, stride, \
3500*b2055c35SXin Li FUNC, output_size, unused2); \
3501*b2055c35SXin Li } \
3502*b2055c35SXin Li
3503*b2055c35SXin Li LOSSLESS_WRAPPER(WebPEncodeLosslessRGB)
3504*b2055c35SXin Li LOSSLESS_WRAPPER(WebPEncodeLosslessBGR)
3505*b2055c35SXin Li LOSSLESS_WRAPPER(WebPEncodeLosslessRGBA)
3506*b2055c35SXin Li LOSSLESS_WRAPPER(WebPEncodeLosslessBGRA)
3507*b2055c35SXin Li
3508*b2055c35SXin Li #undef LOSSLESS_WRAPPER
3509*b2055c35SXin Li
3510*b2055c35SXin Li
3511*b2055c35SXin Li
3512*b2055c35SXin Li SWIGINTERN int
3513*b2055c35SXin Li SWIG_AsVal_long (PyObject *obj, long* val)
3514*b2055c35SXin Li {
3515*b2055c35SXin Li #if PY_VERSION_HEX < 0x03000000
3516*b2055c35SXin Li if (PyInt_Check(obj)) {
3517*b2055c35SXin Li if (val) *val = PyInt_AsLong(obj);
3518*b2055c35SXin Li return SWIG_OK;
3519*b2055c35SXin Li } else
3520*b2055c35SXin Li #endif
3521*b2055c35SXin Li if (PyLong_Check(obj)) {
3522*b2055c35SXin Li long v = PyLong_AsLong(obj);
3523*b2055c35SXin Li if (!PyErr_Occurred()) {
3524*b2055c35SXin Li if (val) *val = v;
3525*b2055c35SXin Li return SWIG_OK;
3526*b2055c35SXin Li } else {
3527*b2055c35SXin Li PyErr_Clear();
3528*b2055c35SXin Li return SWIG_OverflowError;
3529*b2055c35SXin Li }
3530*b2055c35SXin Li }
3531*b2055c35SXin Li #ifdef SWIG_PYTHON_CAST_MODE
3532*b2055c35SXin Li {
3533*b2055c35SXin Li int dispatch = 0;
3534*b2055c35SXin Li long v = PyInt_AsLong(obj);
3535*b2055c35SXin Li if (!PyErr_Occurred()) {
3536*b2055c35SXin Li if (val) *val = v;
3537*b2055c35SXin Li return SWIG_AddCast(SWIG_OK);
3538*b2055c35SXin Li } else {
3539*b2055c35SXin Li PyErr_Clear();
3540*b2055c35SXin Li }
3541*b2055c35SXin Li if (!dispatch) {
3542*b2055c35SXin Li double d;
3543*b2055c35SXin Li int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
3544*b2055c35SXin Li if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
3545*b2055c35SXin Li if (val) *val = (long)(d);
3546*b2055c35SXin Li return res;
3547*b2055c35SXin Li }
3548*b2055c35SXin Li }
3549*b2055c35SXin Li }
3550*b2055c35SXin Li #endif
3551*b2055c35SXin Li return SWIG_TypeError;
3552*b2055c35SXin Li }
3553*b2055c35SXin Li
3554*b2055c35SXin Li
3555*b2055c35SXin Li SWIGINTERN int
SWIG_AsVal_int(PyObject * obj,int * val)3556*b2055c35SXin Li SWIG_AsVal_int (PyObject * obj, int *val)
3557*b2055c35SXin Li {
3558*b2055c35SXin Li long v;
3559*b2055c35SXin Li int res = SWIG_AsVal_long (obj, &v);
3560*b2055c35SXin Li if (SWIG_IsOK(res)) {
3561*b2055c35SXin Li if ((v < INT_MIN || v > INT_MAX)) {
3562*b2055c35SXin Li return SWIG_OverflowError;
3563*b2055c35SXin Li } else {
3564*b2055c35SXin Li if (val) *val = (int)(v);
3565*b2055c35SXin Li }
3566*b2055c35SXin Li }
3567*b2055c35SXin Li return res;
3568*b2055c35SXin Li }
3569*b2055c35SXin Li
3570*b2055c35SXin Li
3571*b2055c35SXin Li /* Getting isfinite working pre C99 across multiple platforms is non-trivial. Users can provide SWIG_isfinite on older platforms. */
3572*b2055c35SXin Li #ifndef SWIG_isfinite
3573*b2055c35SXin Li /* isfinite() is a macro for C99 */
3574*b2055c35SXin Li # if defined(isfinite)
3575*b2055c35SXin Li # define SWIG_isfinite(X) (isfinite(X))
3576*b2055c35SXin Li # elif defined __cplusplus && __cplusplus >= 201103L
3577*b2055c35SXin Li /* Use a template so that this works whether isfinite() is std::isfinite() or
3578*b2055c35SXin Li * in the global namespace. The reality seems to vary between compiler
3579*b2055c35SXin Li * versions.
3580*b2055c35SXin Li *
3581*b2055c35SXin Li * Make sure namespace std exists to avoid compiler warnings.
3582*b2055c35SXin Li *
3583*b2055c35SXin Li * extern "C++" is required as this fragment can end up inside an extern "C" { } block
3584*b2055c35SXin Li */
3585*b2055c35SXin Li namespace std { }
3586*b2055c35SXin Li extern "C++" template<typename T>
SWIG_isfinite_func(T x)3587*b2055c35SXin Li inline int SWIG_isfinite_func(T x) {
3588*b2055c35SXin Li using namespace std;
3589*b2055c35SXin Li return isfinite(x);
3590*b2055c35SXin Li }
3591*b2055c35SXin Li # define SWIG_isfinite(X) (SWIG_isfinite_func(X))
3592*b2055c35SXin Li # elif defined(_MSC_VER)
3593*b2055c35SXin Li # define SWIG_isfinite(X) (_finite(X))
3594*b2055c35SXin Li # elif defined(__sun) && defined(__SVR4)
3595*b2055c35SXin Li # include <ieeefp.h>
3596*b2055c35SXin Li # define SWIG_isfinite(X) (finite(X))
3597*b2055c35SXin Li # endif
3598*b2055c35SXin Li #endif
3599*b2055c35SXin Li
3600*b2055c35SXin Li
3601*b2055c35SXin Li /* Accept infinite as a valid float value unless we are unable to check if a value is finite */
3602*b2055c35SXin Li #ifdef SWIG_isfinite
3603*b2055c35SXin Li # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX) && SWIG_isfinite(X))
3604*b2055c35SXin Li #else
3605*b2055c35SXin Li # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX))
3606*b2055c35SXin Li #endif
3607*b2055c35SXin Li
3608*b2055c35SXin Li
3609*b2055c35SXin Li SWIGINTERN int
SWIG_AsVal_float(PyObject * obj,float * val)3610*b2055c35SXin Li SWIG_AsVal_float (PyObject * obj, float *val)
3611*b2055c35SXin Li {
3612*b2055c35SXin Li double v;
3613*b2055c35SXin Li int res = SWIG_AsVal_double (obj, &v);
3614*b2055c35SXin Li if (SWIG_IsOK(res)) {
3615*b2055c35SXin Li if (SWIG_Float_Overflow_Check(v)) {
3616*b2055c35SXin Li return SWIG_OverflowError;
3617*b2055c35SXin Li } else {
3618*b2055c35SXin Li if (val) *val = (float)(v);
3619*b2055c35SXin Li }
3620*b2055c35SXin Li }
3621*b2055c35SXin Li return res;
3622*b2055c35SXin Li }
3623*b2055c35SXin Li
3624*b2055c35SXin Li #ifdef __cplusplus
3625*b2055c35SXin Li extern "C" {
3626*b2055c35SXin Li #endif
_wrap_WebPGetDecoderVersion(PyObject * SWIGUNUSEDPARM (self),PyObject * args)3627*b2055c35SXin Li SWIGINTERN PyObject *_wrap_WebPGetDecoderVersion(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3628*b2055c35SXin Li PyObject *resultobj = 0;
3629*b2055c35SXin Li int result;
3630*b2055c35SXin Li
3631*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)":WebPGetDecoderVersion")) SWIG_fail;
3632*b2055c35SXin Li result = (int)WebPGetDecoderVersion();
3633*b2055c35SXin Li resultobj = SWIG_From_int((int)(result));
3634*b2055c35SXin Li return resultobj;
3635*b2055c35SXin Li fail:
3636*b2055c35SXin Li return NULL;
3637*b2055c35SXin Li }
3638*b2055c35SXin Li
3639*b2055c35SXin Li
_wrap_WebPGetInfo(PyObject * SWIGUNUSEDPARM (self),PyObject * args)3640*b2055c35SXin Li SWIGINTERN PyObject *_wrap_WebPGetInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3641*b2055c35SXin Li PyObject *resultobj = 0;
3642*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
3643*b2055c35SXin Li size_t arg2 ;
3644*b2055c35SXin Li int *arg3 = (int *) 0 ;
3645*b2055c35SXin Li int *arg4 = (int *) 0 ;
3646*b2055c35SXin Li int res1 ;
3647*b2055c35SXin Li char *buf1 = 0 ;
3648*b2055c35SXin Li size_t size1 = 0 ;
3649*b2055c35SXin Li int alloc1 = 0 ;
3650*b2055c35SXin Li int temp3 ;
3651*b2055c35SXin Li int res3 = SWIG_TMPOBJ ;
3652*b2055c35SXin Li int temp4 ;
3653*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
3654*b2055c35SXin Li PyObject * obj0 = 0 ;
3655*b2055c35SXin Li int result;
3656*b2055c35SXin Li
3657*b2055c35SXin Li arg3 = &temp3;
3658*b2055c35SXin Li arg4 = &temp4;
3659*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"O:WebPGetInfo",&obj0)) SWIG_fail;
3660*b2055c35SXin Li res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, &size1, &alloc1);
3661*b2055c35SXin Li if (!SWIG_IsOK(res1)) {
3662*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "WebPGetInfo" "', argument " "1"" of type '" "uint8_t const *""'");
3663*b2055c35SXin Li }
3664*b2055c35SXin Li arg1 = (uint8_t *)(buf1);
3665*b2055c35SXin Li arg2 = (size_t)(size1 - 1);
3666*b2055c35SXin Li result = (int)WebPGetInfo((uint8_t const *)arg1,arg2,arg3,arg4);
3667*b2055c35SXin Li resultobj = SWIG_From_int((int)(result));
3668*b2055c35SXin Li if (SWIG_IsTmpObj(res3)) {
3669*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3)));
3670*b2055c35SXin Li } else {
3671*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3672*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags));
3673*b2055c35SXin Li }
3674*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
3675*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
3676*b2055c35SXin Li } else {
3677*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3678*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
3679*b2055c35SXin Li }
3680*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3681*b2055c35SXin Li return resultobj;
3682*b2055c35SXin Li fail:
3683*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3684*b2055c35SXin Li return NULL;
3685*b2055c35SXin Li }
3686*b2055c35SXin Li
3687*b2055c35SXin Li
_wrap_WebPDecodeRGB(PyObject * SWIGUNUSEDPARM (self),PyObject * args)3688*b2055c35SXin Li SWIGINTERN PyObject *_wrap_WebPDecodeRGB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3689*b2055c35SXin Li PyObject *resultobj = 0;
3690*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
3691*b2055c35SXin Li size_t arg2 ;
3692*b2055c35SXin Li int *arg3 = (int *) 0 ;
3693*b2055c35SXin Li int *arg4 = (int *) 0 ;
3694*b2055c35SXin Li int res1 ;
3695*b2055c35SXin Li char *buf1 = 0 ;
3696*b2055c35SXin Li size_t size1 = 0 ;
3697*b2055c35SXin Li int alloc1 = 0 ;
3698*b2055c35SXin Li int temp3 ;
3699*b2055c35SXin Li int res3 = SWIG_TMPOBJ ;
3700*b2055c35SXin Li int temp4 ;
3701*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
3702*b2055c35SXin Li PyObject * obj0 = 0 ;
3703*b2055c35SXin Li uint8_t *result = 0 ;
3704*b2055c35SXin Li
3705*b2055c35SXin Li arg3 = &temp3;
3706*b2055c35SXin Li arg4 = &temp4;
3707*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"O:WebPDecodeRGB",&obj0)) SWIG_fail;
3708*b2055c35SXin Li res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, &size1, &alloc1);
3709*b2055c35SXin Li if (!SWIG_IsOK(res1)) {
3710*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "WebPDecodeRGB" "', argument " "1"" of type '" "uint8_t const *""'");
3711*b2055c35SXin Li }
3712*b2055c35SXin Li arg1 = (uint8_t *)(buf1);
3713*b2055c35SXin Li arg2 = (size_t)(size1 - 1);
3714*b2055c35SXin Li result = (uint8_t *)WebPDecodeRGB((uint8_t const *)arg1,arg2,arg3,arg4);
3715*b2055c35SXin Li {
3716*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
3717*b2055c35SXin Li (const char*)result,
3718*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("WebPDecodeRGB", arg3, arg4));
3719*b2055c35SXin Li }
3720*b2055c35SXin Li if (SWIG_IsTmpObj(res3)) {
3721*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3)));
3722*b2055c35SXin Li } else {
3723*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3724*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags));
3725*b2055c35SXin Li }
3726*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
3727*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
3728*b2055c35SXin Li } else {
3729*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3730*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
3731*b2055c35SXin Li }
3732*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3733*b2055c35SXin Li free(result);
3734*b2055c35SXin Li return resultobj;
3735*b2055c35SXin Li fail:
3736*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3737*b2055c35SXin Li return NULL;
3738*b2055c35SXin Li }
3739*b2055c35SXin Li
3740*b2055c35SXin Li
_wrap_WebPDecodeRGBA(PyObject * SWIGUNUSEDPARM (self),PyObject * args)3741*b2055c35SXin Li SWIGINTERN PyObject *_wrap_WebPDecodeRGBA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3742*b2055c35SXin Li PyObject *resultobj = 0;
3743*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
3744*b2055c35SXin Li size_t arg2 ;
3745*b2055c35SXin Li int *arg3 = (int *) 0 ;
3746*b2055c35SXin Li int *arg4 = (int *) 0 ;
3747*b2055c35SXin Li int res1 ;
3748*b2055c35SXin Li char *buf1 = 0 ;
3749*b2055c35SXin Li size_t size1 = 0 ;
3750*b2055c35SXin Li int alloc1 = 0 ;
3751*b2055c35SXin Li int temp3 ;
3752*b2055c35SXin Li int res3 = SWIG_TMPOBJ ;
3753*b2055c35SXin Li int temp4 ;
3754*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
3755*b2055c35SXin Li PyObject * obj0 = 0 ;
3756*b2055c35SXin Li uint8_t *result = 0 ;
3757*b2055c35SXin Li
3758*b2055c35SXin Li arg3 = &temp3;
3759*b2055c35SXin Li arg4 = &temp4;
3760*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"O:WebPDecodeRGBA",&obj0)) SWIG_fail;
3761*b2055c35SXin Li res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, &size1, &alloc1);
3762*b2055c35SXin Li if (!SWIG_IsOK(res1)) {
3763*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "WebPDecodeRGBA" "', argument " "1"" of type '" "uint8_t const *""'");
3764*b2055c35SXin Li }
3765*b2055c35SXin Li arg1 = (uint8_t *)(buf1);
3766*b2055c35SXin Li arg2 = (size_t)(size1 - 1);
3767*b2055c35SXin Li result = (uint8_t *)WebPDecodeRGBA((uint8_t const *)arg1,arg2,arg3,arg4);
3768*b2055c35SXin Li {
3769*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
3770*b2055c35SXin Li (const char*)result,
3771*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("WebPDecodeRGBA", arg3, arg4));
3772*b2055c35SXin Li }
3773*b2055c35SXin Li if (SWIG_IsTmpObj(res3)) {
3774*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3)));
3775*b2055c35SXin Li } else {
3776*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3777*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags));
3778*b2055c35SXin Li }
3779*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
3780*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
3781*b2055c35SXin Li } else {
3782*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3783*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
3784*b2055c35SXin Li }
3785*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3786*b2055c35SXin Li free(result);
3787*b2055c35SXin Li return resultobj;
3788*b2055c35SXin Li fail:
3789*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3790*b2055c35SXin Li return NULL;
3791*b2055c35SXin Li }
3792*b2055c35SXin Li
3793*b2055c35SXin Li
_wrap_WebPDecodeARGB(PyObject * SWIGUNUSEDPARM (self),PyObject * args)3794*b2055c35SXin Li SWIGINTERN PyObject *_wrap_WebPDecodeARGB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3795*b2055c35SXin Li PyObject *resultobj = 0;
3796*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
3797*b2055c35SXin Li size_t arg2 ;
3798*b2055c35SXin Li int *arg3 = (int *) 0 ;
3799*b2055c35SXin Li int *arg4 = (int *) 0 ;
3800*b2055c35SXin Li int res1 ;
3801*b2055c35SXin Li char *buf1 = 0 ;
3802*b2055c35SXin Li size_t size1 = 0 ;
3803*b2055c35SXin Li int alloc1 = 0 ;
3804*b2055c35SXin Li int temp3 ;
3805*b2055c35SXin Li int res3 = SWIG_TMPOBJ ;
3806*b2055c35SXin Li int temp4 ;
3807*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
3808*b2055c35SXin Li PyObject * obj0 = 0 ;
3809*b2055c35SXin Li uint8_t *result = 0 ;
3810*b2055c35SXin Li
3811*b2055c35SXin Li arg3 = &temp3;
3812*b2055c35SXin Li arg4 = &temp4;
3813*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"O:WebPDecodeARGB",&obj0)) SWIG_fail;
3814*b2055c35SXin Li res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, &size1, &alloc1);
3815*b2055c35SXin Li if (!SWIG_IsOK(res1)) {
3816*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "WebPDecodeARGB" "', argument " "1"" of type '" "uint8_t const *""'");
3817*b2055c35SXin Li }
3818*b2055c35SXin Li arg1 = (uint8_t *)(buf1);
3819*b2055c35SXin Li arg2 = (size_t)(size1 - 1);
3820*b2055c35SXin Li result = (uint8_t *)WebPDecodeARGB((uint8_t const *)arg1,arg2,arg3,arg4);
3821*b2055c35SXin Li {
3822*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
3823*b2055c35SXin Li (const char*)result,
3824*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("WebPDecodeARGB", arg3, arg4));
3825*b2055c35SXin Li }
3826*b2055c35SXin Li if (SWIG_IsTmpObj(res3)) {
3827*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3)));
3828*b2055c35SXin Li } else {
3829*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3830*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags));
3831*b2055c35SXin Li }
3832*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
3833*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
3834*b2055c35SXin Li } else {
3835*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3836*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
3837*b2055c35SXin Li }
3838*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3839*b2055c35SXin Li free(result);
3840*b2055c35SXin Li return resultobj;
3841*b2055c35SXin Li fail:
3842*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3843*b2055c35SXin Li return NULL;
3844*b2055c35SXin Li }
3845*b2055c35SXin Li
3846*b2055c35SXin Li
_wrap_WebPDecodeBGR(PyObject * SWIGUNUSEDPARM (self),PyObject * args)3847*b2055c35SXin Li SWIGINTERN PyObject *_wrap_WebPDecodeBGR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3848*b2055c35SXin Li PyObject *resultobj = 0;
3849*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
3850*b2055c35SXin Li size_t arg2 ;
3851*b2055c35SXin Li int *arg3 = (int *) 0 ;
3852*b2055c35SXin Li int *arg4 = (int *) 0 ;
3853*b2055c35SXin Li int res1 ;
3854*b2055c35SXin Li char *buf1 = 0 ;
3855*b2055c35SXin Li size_t size1 = 0 ;
3856*b2055c35SXin Li int alloc1 = 0 ;
3857*b2055c35SXin Li int temp3 ;
3858*b2055c35SXin Li int res3 = SWIG_TMPOBJ ;
3859*b2055c35SXin Li int temp4 ;
3860*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
3861*b2055c35SXin Li PyObject * obj0 = 0 ;
3862*b2055c35SXin Li uint8_t *result = 0 ;
3863*b2055c35SXin Li
3864*b2055c35SXin Li arg3 = &temp3;
3865*b2055c35SXin Li arg4 = &temp4;
3866*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"O:WebPDecodeBGR",&obj0)) SWIG_fail;
3867*b2055c35SXin Li res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, &size1, &alloc1);
3868*b2055c35SXin Li if (!SWIG_IsOK(res1)) {
3869*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "WebPDecodeBGR" "', argument " "1"" of type '" "uint8_t const *""'");
3870*b2055c35SXin Li }
3871*b2055c35SXin Li arg1 = (uint8_t *)(buf1);
3872*b2055c35SXin Li arg2 = (size_t)(size1 - 1);
3873*b2055c35SXin Li result = (uint8_t *)WebPDecodeBGR((uint8_t const *)arg1,arg2,arg3,arg4);
3874*b2055c35SXin Li {
3875*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
3876*b2055c35SXin Li (const char*)result,
3877*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("WebPDecodeBGR", arg3, arg4));
3878*b2055c35SXin Li }
3879*b2055c35SXin Li if (SWIG_IsTmpObj(res3)) {
3880*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3)));
3881*b2055c35SXin Li } else {
3882*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3883*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags));
3884*b2055c35SXin Li }
3885*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
3886*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
3887*b2055c35SXin Li } else {
3888*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3889*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
3890*b2055c35SXin Li }
3891*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3892*b2055c35SXin Li free(result);
3893*b2055c35SXin Li return resultobj;
3894*b2055c35SXin Li fail:
3895*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3896*b2055c35SXin Li return NULL;
3897*b2055c35SXin Li }
3898*b2055c35SXin Li
3899*b2055c35SXin Li
_wrap_WebPDecodeBGRA(PyObject * SWIGUNUSEDPARM (self),PyObject * args)3900*b2055c35SXin Li SWIGINTERN PyObject *_wrap_WebPDecodeBGRA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3901*b2055c35SXin Li PyObject *resultobj = 0;
3902*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
3903*b2055c35SXin Li size_t arg2 ;
3904*b2055c35SXin Li int *arg3 = (int *) 0 ;
3905*b2055c35SXin Li int *arg4 = (int *) 0 ;
3906*b2055c35SXin Li int res1 ;
3907*b2055c35SXin Li char *buf1 = 0 ;
3908*b2055c35SXin Li size_t size1 = 0 ;
3909*b2055c35SXin Li int alloc1 = 0 ;
3910*b2055c35SXin Li int temp3 ;
3911*b2055c35SXin Li int res3 = SWIG_TMPOBJ ;
3912*b2055c35SXin Li int temp4 ;
3913*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
3914*b2055c35SXin Li PyObject * obj0 = 0 ;
3915*b2055c35SXin Li uint8_t *result = 0 ;
3916*b2055c35SXin Li
3917*b2055c35SXin Li arg3 = &temp3;
3918*b2055c35SXin Li arg4 = &temp4;
3919*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"O:WebPDecodeBGRA",&obj0)) SWIG_fail;
3920*b2055c35SXin Li res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, &size1, &alloc1);
3921*b2055c35SXin Li if (!SWIG_IsOK(res1)) {
3922*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "WebPDecodeBGRA" "', argument " "1"" of type '" "uint8_t const *""'");
3923*b2055c35SXin Li }
3924*b2055c35SXin Li arg1 = (uint8_t *)(buf1);
3925*b2055c35SXin Li arg2 = (size_t)(size1 - 1);
3926*b2055c35SXin Li result = (uint8_t *)WebPDecodeBGRA((uint8_t const *)arg1,arg2,arg3,arg4);
3927*b2055c35SXin Li {
3928*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
3929*b2055c35SXin Li (const char*)result,
3930*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("WebPDecodeBGRA", arg3, arg4));
3931*b2055c35SXin Li }
3932*b2055c35SXin Li if (SWIG_IsTmpObj(res3)) {
3933*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3)));
3934*b2055c35SXin Li } else {
3935*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3936*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags));
3937*b2055c35SXin Li }
3938*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
3939*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
3940*b2055c35SXin Li } else {
3941*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
3942*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
3943*b2055c35SXin Li }
3944*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3945*b2055c35SXin Li free(result);
3946*b2055c35SXin Li return resultobj;
3947*b2055c35SXin Li fail:
3948*b2055c35SXin Li if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3949*b2055c35SXin Li return NULL;
3950*b2055c35SXin Li }
3951*b2055c35SXin Li
3952*b2055c35SXin Li
_wrap_WebPGetEncoderVersion(PyObject * SWIGUNUSEDPARM (self),PyObject * args)3953*b2055c35SXin Li SWIGINTERN PyObject *_wrap_WebPGetEncoderVersion(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3954*b2055c35SXin Li PyObject *resultobj = 0;
3955*b2055c35SXin Li int result;
3956*b2055c35SXin Li
3957*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)":WebPGetEncoderVersion")) SWIG_fail;
3958*b2055c35SXin Li result = (int)WebPGetEncoderVersion();
3959*b2055c35SXin Li resultobj = SWIG_From_int((int)(result));
3960*b2055c35SXin Li return resultobj;
3961*b2055c35SXin Li fail:
3962*b2055c35SXin Li return NULL;
3963*b2055c35SXin Li }
3964*b2055c35SXin Li
3965*b2055c35SXin Li
_wrap_wrap_WebPEncodeRGB(PyObject * SWIGUNUSEDPARM (self),PyObject * args)3966*b2055c35SXin Li SWIGINTERN PyObject *_wrap_wrap_WebPEncodeRGB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3967*b2055c35SXin Li PyObject *resultobj = 0;
3968*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
3969*b2055c35SXin Li int *arg2 = (int *) 0 ;
3970*b2055c35SXin Li int *arg3 = (int *) 0 ;
3971*b2055c35SXin Li int *arg4 = (int *) 0 ;
3972*b2055c35SXin Li int arg5 ;
3973*b2055c35SXin Li int arg6 ;
3974*b2055c35SXin Li int arg7 ;
3975*b2055c35SXin Li float arg8 ;
3976*b2055c35SXin Li Py_buffer rgb_buffer1 ;
3977*b2055c35SXin Li int temp2 ;
3978*b2055c35SXin Li int res2 = 0 ;
3979*b2055c35SXin Li int temp3 ;
3980*b2055c35SXin Li int res3 = 0 ;
3981*b2055c35SXin Li int temp4 ;
3982*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
3983*b2055c35SXin Li int val5 ;
3984*b2055c35SXin Li int ecode5 = 0 ;
3985*b2055c35SXin Li int val6 ;
3986*b2055c35SXin Li int ecode6 = 0 ;
3987*b2055c35SXin Li int val7 ;
3988*b2055c35SXin Li int ecode7 = 0 ;
3989*b2055c35SXin Li float val8 ;
3990*b2055c35SXin Li int ecode8 = 0 ;
3991*b2055c35SXin Li PyObject * obj0 = 0 ;
3992*b2055c35SXin Li PyObject * obj1 = 0 ;
3993*b2055c35SXin Li PyObject * obj2 = 0 ;
3994*b2055c35SXin Li PyObject * obj3 = 0 ;
3995*b2055c35SXin Li PyObject * obj4 = 0 ;
3996*b2055c35SXin Li PyObject * obj5 = 0 ;
3997*b2055c35SXin Li PyObject * obj6 = 0 ;
3998*b2055c35SXin Li uint8_t *result = 0 ;
3999*b2055c35SXin Li
4000*b2055c35SXin Li arg4 = &temp4;
4001*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:wrap_WebPEncodeRGB",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
4002*b2055c35SXin Li {
4003*b2055c35SXin Li // NB: with Python < 2.6 the old style buffer protocol may be used:
4004*b2055c35SXin Li // Py_ssize_t unused;
4005*b2055c35SXin Li // PyObject_AsReadBuffer(obj0, (const void**)(&arg1), &unused);
4006*b2055c35SXin Li if (!PyObject_CheckBuffer(obj0)) {
4007*b2055c35SXin Li SWIG_exception_fail(SWIG_TypeError,
4008*b2055c35SXin Li "in method 'wrap_WebPEncodeRGB', argument 1"
4009*b2055c35SXin Li " does not support the buffer interface");
4010*b2055c35SXin Li }
4011*b2055c35SXin Li if (PyObject_GetBuffer(obj0, &rgb_buffer1, PyBUF_SIMPLE)) {
4012*b2055c35SXin Li SWIG_exception_fail(SWIG_RuntimeError,
4013*b2055c35SXin Li "in method 'wrap_WebPEncodeRGB', unable to get buffer view");
4014*b2055c35SXin Li }
4015*b2055c35SXin Li arg1 = (uint8_t *)rgb_buffer1.buf;
4016*b2055c35SXin Li }
4017*b2055c35SXin Li if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) {
4018*b2055c35SXin Li int val;
4019*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj1, &val);
4020*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4021*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeRGB" "', argument " "2"" of type '" "int""'");
4022*b2055c35SXin Li }
4023*b2055c35SXin Li temp2 = (int)(val);
4024*b2055c35SXin Li arg2 = &temp2;
4025*b2055c35SXin Li res2 = SWIG_AddTmpMask(ecode);
4026*b2055c35SXin Li }
4027*b2055c35SXin Li if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) {
4028*b2055c35SXin Li int val;
4029*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj2, &val);
4030*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4031*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeRGB" "', argument " "3"" of type '" "int""'");
4032*b2055c35SXin Li }
4033*b2055c35SXin Li temp3 = (int)(val);
4034*b2055c35SXin Li arg3 = &temp3;
4035*b2055c35SXin Li res3 = SWIG_AddTmpMask(ecode);
4036*b2055c35SXin Li }
4037*b2055c35SXin Li ecode5 = SWIG_AsVal_int(obj3, &val5);
4038*b2055c35SXin Li if (!SWIG_IsOK(ecode5)) {
4039*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "wrap_WebPEncodeRGB" "', argument " "5"" of type '" "int""'");
4040*b2055c35SXin Li }
4041*b2055c35SXin Li arg5 = (int)(val5);
4042*b2055c35SXin Li ecode6 = SWIG_AsVal_int(obj4, &val6);
4043*b2055c35SXin Li if (!SWIG_IsOK(ecode6)) {
4044*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "wrap_WebPEncodeRGB" "', argument " "6"" of type '" "int""'");
4045*b2055c35SXin Li }
4046*b2055c35SXin Li arg6 = (int)(val6);
4047*b2055c35SXin Li ecode7 = SWIG_AsVal_int(obj5, &val7);
4048*b2055c35SXin Li if (!SWIG_IsOK(ecode7)) {
4049*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "wrap_WebPEncodeRGB" "', argument " "7"" of type '" "int""'");
4050*b2055c35SXin Li }
4051*b2055c35SXin Li arg7 = (int)(val7);
4052*b2055c35SXin Li ecode8 = SWIG_AsVal_float(obj6, &val8);
4053*b2055c35SXin Li if (!SWIG_IsOK(ecode8)) {
4054*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "wrap_WebPEncodeRGB" "', argument " "8"" of type '" "float""'");
4055*b2055c35SXin Li }
4056*b2055c35SXin Li arg8 = (float)(val8);
4057*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeRGB((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
4058*b2055c35SXin Li {
4059*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
4060*b2055c35SXin Li (const char*)result,
4061*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("wrap_WebPEncodeRGB", arg3, arg4));
4062*b2055c35SXin Li }
4063*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
4064*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
4065*b2055c35SXin Li } else {
4066*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
4067*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
4068*b2055c35SXin Li }
4069*b2055c35SXin Li {
4070*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4071*b2055c35SXin Li }
4072*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4073*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4074*b2055c35SXin Li free(result);
4075*b2055c35SXin Li return resultobj;
4076*b2055c35SXin Li fail:
4077*b2055c35SXin Li {
4078*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4079*b2055c35SXin Li }
4080*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4081*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4082*b2055c35SXin Li return NULL;
4083*b2055c35SXin Li }
4084*b2055c35SXin Li
4085*b2055c35SXin Li
_wrap_wrap_WebPEncodeBGR(PyObject * SWIGUNUSEDPARM (self),PyObject * args)4086*b2055c35SXin Li SWIGINTERN PyObject *_wrap_wrap_WebPEncodeBGR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4087*b2055c35SXin Li PyObject *resultobj = 0;
4088*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
4089*b2055c35SXin Li int *arg2 = (int *) 0 ;
4090*b2055c35SXin Li int *arg3 = (int *) 0 ;
4091*b2055c35SXin Li int *arg4 = (int *) 0 ;
4092*b2055c35SXin Li int arg5 ;
4093*b2055c35SXin Li int arg6 ;
4094*b2055c35SXin Li int arg7 ;
4095*b2055c35SXin Li float arg8 ;
4096*b2055c35SXin Li Py_buffer rgb_buffer1 ;
4097*b2055c35SXin Li int temp2 ;
4098*b2055c35SXin Li int res2 = 0 ;
4099*b2055c35SXin Li int temp3 ;
4100*b2055c35SXin Li int res3 = 0 ;
4101*b2055c35SXin Li int temp4 ;
4102*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
4103*b2055c35SXin Li int val5 ;
4104*b2055c35SXin Li int ecode5 = 0 ;
4105*b2055c35SXin Li int val6 ;
4106*b2055c35SXin Li int ecode6 = 0 ;
4107*b2055c35SXin Li int val7 ;
4108*b2055c35SXin Li int ecode7 = 0 ;
4109*b2055c35SXin Li float val8 ;
4110*b2055c35SXin Li int ecode8 = 0 ;
4111*b2055c35SXin Li PyObject * obj0 = 0 ;
4112*b2055c35SXin Li PyObject * obj1 = 0 ;
4113*b2055c35SXin Li PyObject * obj2 = 0 ;
4114*b2055c35SXin Li PyObject * obj3 = 0 ;
4115*b2055c35SXin Li PyObject * obj4 = 0 ;
4116*b2055c35SXin Li PyObject * obj5 = 0 ;
4117*b2055c35SXin Li PyObject * obj6 = 0 ;
4118*b2055c35SXin Li uint8_t *result = 0 ;
4119*b2055c35SXin Li
4120*b2055c35SXin Li arg4 = &temp4;
4121*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:wrap_WebPEncodeBGR",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
4122*b2055c35SXin Li {
4123*b2055c35SXin Li // NB: with Python < 2.6 the old style buffer protocol may be used:
4124*b2055c35SXin Li // Py_ssize_t unused;
4125*b2055c35SXin Li // PyObject_AsReadBuffer(obj0, (const void**)(&arg1), &unused);
4126*b2055c35SXin Li if (!PyObject_CheckBuffer(obj0)) {
4127*b2055c35SXin Li SWIG_exception_fail(SWIG_TypeError,
4128*b2055c35SXin Li "in method 'wrap_WebPEncodeBGR', argument 1"
4129*b2055c35SXin Li " does not support the buffer interface");
4130*b2055c35SXin Li }
4131*b2055c35SXin Li if (PyObject_GetBuffer(obj0, &rgb_buffer1, PyBUF_SIMPLE)) {
4132*b2055c35SXin Li SWIG_exception_fail(SWIG_RuntimeError,
4133*b2055c35SXin Li "in method 'wrap_WebPEncodeBGR', unable to get buffer view");
4134*b2055c35SXin Li }
4135*b2055c35SXin Li arg1 = (uint8_t *)rgb_buffer1.buf;
4136*b2055c35SXin Li }
4137*b2055c35SXin Li if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) {
4138*b2055c35SXin Li int val;
4139*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj1, &val);
4140*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4141*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeBGR" "', argument " "2"" of type '" "int""'");
4142*b2055c35SXin Li }
4143*b2055c35SXin Li temp2 = (int)(val);
4144*b2055c35SXin Li arg2 = &temp2;
4145*b2055c35SXin Li res2 = SWIG_AddTmpMask(ecode);
4146*b2055c35SXin Li }
4147*b2055c35SXin Li if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) {
4148*b2055c35SXin Li int val;
4149*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj2, &val);
4150*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4151*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeBGR" "', argument " "3"" of type '" "int""'");
4152*b2055c35SXin Li }
4153*b2055c35SXin Li temp3 = (int)(val);
4154*b2055c35SXin Li arg3 = &temp3;
4155*b2055c35SXin Li res3 = SWIG_AddTmpMask(ecode);
4156*b2055c35SXin Li }
4157*b2055c35SXin Li ecode5 = SWIG_AsVal_int(obj3, &val5);
4158*b2055c35SXin Li if (!SWIG_IsOK(ecode5)) {
4159*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "wrap_WebPEncodeBGR" "', argument " "5"" of type '" "int""'");
4160*b2055c35SXin Li }
4161*b2055c35SXin Li arg5 = (int)(val5);
4162*b2055c35SXin Li ecode6 = SWIG_AsVal_int(obj4, &val6);
4163*b2055c35SXin Li if (!SWIG_IsOK(ecode6)) {
4164*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "wrap_WebPEncodeBGR" "', argument " "6"" of type '" "int""'");
4165*b2055c35SXin Li }
4166*b2055c35SXin Li arg6 = (int)(val6);
4167*b2055c35SXin Li ecode7 = SWIG_AsVal_int(obj5, &val7);
4168*b2055c35SXin Li if (!SWIG_IsOK(ecode7)) {
4169*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "wrap_WebPEncodeBGR" "', argument " "7"" of type '" "int""'");
4170*b2055c35SXin Li }
4171*b2055c35SXin Li arg7 = (int)(val7);
4172*b2055c35SXin Li ecode8 = SWIG_AsVal_float(obj6, &val8);
4173*b2055c35SXin Li if (!SWIG_IsOK(ecode8)) {
4174*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "wrap_WebPEncodeBGR" "', argument " "8"" of type '" "float""'");
4175*b2055c35SXin Li }
4176*b2055c35SXin Li arg8 = (float)(val8);
4177*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeBGR((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
4178*b2055c35SXin Li {
4179*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
4180*b2055c35SXin Li (const char*)result,
4181*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("wrap_WebPEncodeBGR", arg3, arg4));
4182*b2055c35SXin Li }
4183*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
4184*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
4185*b2055c35SXin Li } else {
4186*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
4187*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
4188*b2055c35SXin Li }
4189*b2055c35SXin Li {
4190*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4191*b2055c35SXin Li }
4192*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4193*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4194*b2055c35SXin Li free(result);
4195*b2055c35SXin Li return resultobj;
4196*b2055c35SXin Li fail:
4197*b2055c35SXin Li {
4198*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4199*b2055c35SXin Li }
4200*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4201*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4202*b2055c35SXin Li return NULL;
4203*b2055c35SXin Li }
4204*b2055c35SXin Li
4205*b2055c35SXin Li
_wrap_wrap_WebPEncodeRGBA(PyObject * SWIGUNUSEDPARM (self),PyObject * args)4206*b2055c35SXin Li SWIGINTERN PyObject *_wrap_wrap_WebPEncodeRGBA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4207*b2055c35SXin Li PyObject *resultobj = 0;
4208*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
4209*b2055c35SXin Li int *arg2 = (int *) 0 ;
4210*b2055c35SXin Li int *arg3 = (int *) 0 ;
4211*b2055c35SXin Li int *arg4 = (int *) 0 ;
4212*b2055c35SXin Li int arg5 ;
4213*b2055c35SXin Li int arg6 ;
4214*b2055c35SXin Li int arg7 ;
4215*b2055c35SXin Li float arg8 ;
4216*b2055c35SXin Li Py_buffer rgb_buffer1 ;
4217*b2055c35SXin Li int temp2 ;
4218*b2055c35SXin Li int res2 = 0 ;
4219*b2055c35SXin Li int temp3 ;
4220*b2055c35SXin Li int res3 = 0 ;
4221*b2055c35SXin Li int temp4 ;
4222*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
4223*b2055c35SXin Li int val5 ;
4224*b2055c35SXin Li int ecode5 = 0 ;
4225*b2055c35SXin Li int val6 ;
4226*b2055c35SXin Li int ecode6 = 0 ;
4227*b2055c35SXin Li int val7 ;
4228*b2055c35SXin Li int ecode7 = 0 ;
4229*b2055c35SXin Li float val8 ;
4230*b2055c35SXin Li int ecode8 = 0 ;
4231*b2055c35SXin Li PyObject * obj0 = 0 ;
4232*b2055c35SXin Li PyObject * obj1 = 0 ;
4233*b2055c35SXin Li PyObject * obj2 = 0 ;
4234*b2055c35SXin Li PyObject * obj3 = 0 ;
4235*b2055c35SXin Li PyObject * obj4 = 0 ;
4236*b2055c35SXin Li PyObject * obj5 = 0 ;
4237*b2055c35SXin Li PyObject * obj6 = 0 ;
4238*b2055c35SXin Li uint8_t *result = 0 ;
4239*b2055c35SXin Li
4240*b2055c35SXin Li arg4 = &temp4;
4241*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:wrap_WebPEncodeRGBA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
4242*b2055c35SXin Li {
4243*b2055c35SXin Li // NB: with Python < 2.6 the old style buffer protocol may be used:
4244*b2055c35SXin Li // Py_ssize_t unused;
4245*b2055c35SXin Li // PyObject_AsReadBuffer(obj0, (const void**)(&arg1), &unused);
4246*b2055c35SXin Li if (!PyObject_CheckBuffer(obj0)) {
4247*b2055c35SXin Li SWIG_exception_fail(SWIG_TypeError,
4248*b2055c35SXin Li "in method 'wrap_WebPEncodeRGBA', argument 1"
4249*b2055c35SXin Li " does not support the buffer interface");
4250*b2055c35SXin Li }
4251*b2055c35SXin Li if (PyObject_GetBuffer(obj0, &rgb_buffer1, PyBUF_SIMPLE)) {
4252*b2055c35SXin Li SWIG_exception_fail(SWIG_RuntimeError,
4253*b2055c35SXin Li "in method 'wrap_WebPEncodeRGBA', unable to get buffer view");
4254*b2055c35SXin Li }
4255*b2055c35SXin Li arg1 = (uint8_t *)rgb_buffer1.buf;
4256*b2055c35SXin Li }
4257*b2055c35SXin Li if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) {
4258*b2055c35SXin Li int val;
4259*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj1, &val);
4260*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4261*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeRGBA" "', argument " "2"" of type '" "int""'");
4262*b2055c35SXin Li }
4263*b2055c35SXin Li temp2 = (int)(val);
4264*b2055c35SXin Li arg2 = &temp2;
4265*b2055c35SXin Li res2 = SWIG_AddTmpMask(ecode);
4266*b2055c35SXin Li }
4267*b2055c35SXin Li if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) {
4268*b2055c35SXin Li int val;
4269*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj2, &val);
4270*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4271*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeRGBA" "', argument " "3"" of type '" "int""'");
4272*b2055c35SXin Li }
4273*b2055c35SXin Li temp3 = (int)(val);
4274*b2055c35SXin Li arg3 = &temp3;
4275*b2055c35SXin Li res3 = SWIG_AddTmpMask(ecode);
4276*b2055c35SXin Li }
4277*b2055c35SXin Li ecode5 = SWIG_AsVal_int(obj3, &val5);
4278*b2055c35SXin Li if (!SWIG_IsOK(ecode5)) {
4279*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "wrap_WebPEncodeRGBA" "', argument " "5"" of type '" "int""'");
4280*b2055c35SXin Li }
4281*b2055c35SXin Li arg5 = (int)(val5);
4282*b2055c35SXin Li ecode6 = SWIG_AsVal_int(obj4, &val6);
4283*b2055c35SXin Li if (!SWIG_IsOK(ecode6)) {
4284*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "wrap_WebPEncodeRGBA" "', argument " "6"" of type '" "int""'");
4285*b2055c35SXin Li }
4286*b2055c35SXin Li arg6 = (int)(val6);
4287*b2055c35SXin Li ecode7 = SWIG_AsVal_int(obj5, &val7);
4288*b2055c35SXin Li if (!SWIG_IsOK(ecode7)) {
4289*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "wrap_WebPEncodeRGBA" "', argument " "7"" of type '" "int""'");
4290*b2055c35SXin Li }
4291*b2055c35SXin Li arg7 = (int)(val7);
4292*b2055c35SXin Li ecode8 = SWIG_AsVal_float(obj6, &val8);
4293*b2055c35SXin Li if (!SWIG_IsOK(ecode8)) {
4294*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "wrap_WebPEncodeRGBA" "', argument " "8"" of type '" "float""'");
4295*b2055c35SXin Li }
4296*b2055c35SXin Li arg8 = (float)(val8);
4297*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeRGBA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
4298*b2055c35SXin Li {
4299*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
4300*b2055c35SXin Li (const char*)result,
4301*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("wrap_WebPEncodeRGBA", arg3, arg4));
4302*b2055c35SXin Li }
4303*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
4304*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
4305*b2055c35SXin Li } else {
4306*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
4307*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
4308*b2055c35SXin Li }
4309*b2055c35SXin Li {
4310*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4311*b2055c35SXin Li }
4312*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4313*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4314*b2055c35SXin Li free(result);
4315*b2055c35SXin Li return resultobj;
4316*b2055c35SXin Li fail:
4317*b2055c35SXin Li {
4318*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4319*b2055c35SXin Li }
4320*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4321*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4322*b2055c35SXin Li return NULL;
4323*b2055c35SXin Li }
4324*b2055c35SXin Li
4325*b2055c35SXin Li
_wrap_wrap_WebPEncodeBGRA(PyObject * SWIGUNUSEDPARM (self),PyObject * args)4326*b2055c35SXin Li SWIGINTERN PyObject *_wrap_wrap_WebPEncodeBGRA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4327*b2055c35SXin Li PyObject *resultobj = 0;
4328*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
4329*b2055c35SXin Li int *arg2 = (int *) 0 ;
4330*b2055c35SXin Li int *arg3 = (int *) 0 ;
4331*b2055c35SXin Li int *arg4 = (int *) 0 ;
4332*b2055c35SXin Li int arg5 ;
4333*b2055c35SXin Li int arg6 ;
4334*b2055c35SXin Li int arg7 ;
4335*b2055c35SXin Li float arg8 ;
4336*b2055c35SXin Li Py_buffer rgb_buffer1 ;
4337*b2055c35SXin Li int temp2 ;
4338*b2055c35SXin Li int res2 = 0 ;
4339*b2055c35SXin Li int temp3 ;
4340*b2055c35SXin Li int res3 = 0 ;
4341*b2055c35SXin Li int temp4 ;
4342*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
4343*b2055c35SXin Li int val5 ;
4344*b2055c35SXin Li int ecode5 = 0 ;
4345*b2055c35SXin Li int val6 ;
4346*b2055c35SXin Li int ecode6 = 0 ;
4347*b2055c35SXin Li int val7 ;
4348*b2055c35SXin Li int ecode7 = 0 ;
4349*b2055c35SXin Li float val8 ;
4350*b2055c35SXin Li int ecode8 = 0 ;
4351*b2055c35SXin Li PyObject * obj0 = 0 ;
4352*b2055c35SXin Li PyObject * obj1 = 0 ;
4353*b2055c35SXin Li PyObject * obj2 = 0 ;
4354*b2055c35SXin Li PyObject * obj3 = 0 ;
4355*b2055c35SXin Li PyObject * obj4 = 0 ;
4356*b2055c35SXin Li PyObject * obj5 = 0 ;
4357*b2055c35SXin Li PyObject * obj6 = 0 ;
4358*b2055c35SXin Li uint8_t *result = 0 ;
4359*b2055c35SXin Li
4360*b2055c35SXin Li arg4 = &temp4;
4361*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:wrap_WebPEncodeBGRA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
4362*b2055c35SXin Li {
4363*b2055c35SXin Li // NB: with Python < 2.6 the old style buffer protocol may be used:
4364*b2055c35SXin Li // Py_ssize_t unused;
4365*b2055c35SXin Li // PyObject_AsReadBuffer(obj0, (const void**)(&arg1), &unused);
4366*b2055c35SXin Li if (!PyObject_CheckBuffer(obj0)) {
4367*b2055c35SXin Li SWIG_exception_fail(SWIG_TypeError,
4368*b2055c35SXin Li "in method 'wrap_WebPEncodeBGRA', argument 1"
4369*b2055c35SXin Li " does not support the buffer interface");
4370*b2055c35SXin Li }
4371*b2055c35SXin Li if (PyObject_GetBuffer(obj0, &rgb_buffer1, PyBUF_SIMPLE)) {
4372*b2055c35SXin Li SWIG_exception_fail(SWIG_RuntimeError,
4373*b2055c35SXin Li "in method 'wrap_WebPEncodeBGRA', unable to get buffer view");
4374*b2055c35SXin Li }
4375*b2055c35SXin Li arg1 = (uint8_t *)rgb_buffer1.buf;
4376*b2055c35SXin Li }
4377*b2055c35SXin Li if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) {
4378*b2055c35SXin Li int val;
4379*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj1, &val);
4380*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4381*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeBGRA" "', argument " "2"" of type '" "int""'");
4382*b2055c35SXin Li }
4383*b2055c35SXin Li temp2 = (int)(val);
4384*b2055c35SXin Li arg2 = &temp2;
4385*b2055c35SXin Li res2 = SWIG_AddTmpMask(ecode);
4386*b2055c35SXin Li }
4387*b2055c35SXin Li if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) {
4388*b2055c35SXin Li int val;
4389*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj2, &val);
4390*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4391*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeBGRA" "', argument " "3"" of type '" "int""'");
4392*b2055c35SXin Li }
4393*b2055c35SXin Li temp3 = (int)(val);
4394*b2055c35SXin Li arg3 = &temp3;
4395*b2055c35SXin Li res3 = SWIG_AddTmpMask(ecode);
4396*b2055c35SXin Li }
4397*b2055c35SXin Li ecode5 = SWIG_AsVal_int(obj3, &val5);
4398*b2055c35SXin Li if (!SWIG_IsOK(ecode5)) {
4399*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "wrap_WebPEncodeBGRA" "', argument " "5"" of type '" "int""'");
4400*b2055c35SXin Li }
4401*b2055c35SXin Li arg5 = (int)(val5);
4402*b2055c35SXin Li ecode6 = SWIG_AsVal_int(obj4, &val6);
4403*b2055c35SXin Li if (!SWIG_IsOK(ecode6)) {
4404*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "wrap_WebPEncodeBGRA" "', argument " "6"" of type '" "int""'");
4405*b2055c35SXin Li }
4406*b2055c35SXin Li arg6 = (int)(val6);
4407*b2055c35SXin Li ecode7 = SWIG_AsVal_int(obj5, &val7);
4408*b2055c35SXin Li if (!SWIG_IsOK(ecode7)) {
4409*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "wrap_WebPEncodeBGRA" "', argument " "7"" of type '" "int""'");
4410*b2055c35SXin Li }
4411*b2055c35SXin Li arg7 = (int)(val7);
4412*b2055c35SXin Li ecode8 = SWIG_AsVal_float(obj6, &val8);
4413*b2055c35SXin Li if (!SWIG_IsOK(ecode8)) {
4414*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "wrap_WebPEncodeBGRA" "', argument " "8"" of type '" "float""'");
4415*b2055c35SXin Li }
4416*b2055c35SXin Li arg8 = (float)(val8);
4417*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeBGRA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
4418*b2055c35SXin Li {
4419*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
4420*b2055c35SXin Li (const char*)result,
4421*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("wrap_WebPEncodeBGRA", arg3, arg4));
4422*b2055c35SXin Li }
4423*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
4424*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
4425*b2055c35SXin Li } else {
4426*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
4427*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
4428*b2055c35SXin Li }
4429*b2055c35SXin Li {
4430*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4431*b2055c35SXin Li }
4432*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4433*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4434*b2055c35SXin Li free(result);
4435*b2055c35SXin Li return resultobj;
4436*b2055c35SXin Li fail:
4437*b2055c35SXin Li {
4438*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4439*b2055c35SXin Li }
4440*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4441*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4442*b2055c35SXin Li return NULL;
4443*b2055c35SXin Li }
4444*b2055c35SXin Li
4445*b2055c35SXin Li
_wrap_wrap_WebPEncodeLosslessRGB(PyObject * SWIGUNUSEDPARM (self),PyObject * args)4446*b2055c35SXin Li SWIGINTERN PyObject *_wrap_wrap_WebPEncodeLosslessRGB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4447*b2055c35SXin Li PyObject *resultobj = 0;
4448*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
4449*b2055c35SXin Li int *arg2 = (int *) 0 ;
4450*b2055c35SXin Li int *arg3 = (int *) 0 ;
4451*b2055c35SXin Li int *arg4 = (int *) 0 ;
4452*b2055c35SXin Li int arg5 ;
4453*b2055c35SXin Li int arg6 ;
4454*b2055c35SXin Li int arg7 ;
4455*b2055c35SXin Li Py_buffer rgb_buffer1 ;
4456*b2055c35SXin Li int temp2 ;
4457*b2055c35SXin Li int res2 = 0 ;
4458*b2055c35SXin Li int temp3 ;
4459*b2055c35SXin Li int res3 = 0 ;
4460*b2055c35SXin Li int temp4 ;
4461*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
4462*b2055c35SXin Li int val5 ;
4463*b2055c35SXin Li int ecode5 = 0 ;
4464*b2055c35SXin Li int val6 ;
4465*b2055c35SXin Li int ecode6 = 0 ;
4466*b2055c35SXin Li int val7 ;
4467*b2055c35SXin Li int ecode7 = 0 ;
4468*b2055c35SXin Li PyObject * obj0 = 0 ;
4469*b2055c35SXin Li PyObject * obj1 = 0 ;
4470*b2055c35SXin Li PyObject * obj2 = 0 ;
4471*b2055c35SXin Li PyObject * obj3 = 0 ;
4472*b2055c35SXin Li PyObject * obj4 = 0 ;
4473*b2055c35SXin Li PyObject * obj5 = 0 ;
4474*b2055c35SXin Li uint8_t *result = 0 ;
4475*b2055c35SXin Li
4476*b2055c35SXin Li arg4 = &temp4;
4477*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"OOOOOO:wrap_WebPEncodeLosslessRGB",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
4478*b2055c35SXin Li {
4479*b2055c35SXin Li // NB: with Python < 2.6 the old style buffer protocol may be used:
4480*b2055c35SXin Li // Py_ssize_t unused;
4481*b2055c35SXin Li // PyObject_AsReadBuffer(obj0, (const void**)(&arg1), &unused);
4482*b2055c35SXin Li if (!PyObject_CheckBuffer(obj0)) {
4483*b2055c35SXin Li SWIG_exception_fail(SWIG_TypeError,
4484*b2055c35SXin Li "in method 'wrap_WebPEncodeLosslessRGB', argument 1"
4485*b2055c35SXin Li " does not support the buffer interface");
4486*b2055c35SXin Li }
4487*b2055c35SXin Li if (PyObject_GetBuffer(obj0, &rgb_buffer1, PyBUF_SIMPLE)) {
4488*b2055c35SXin Li SWIG_exception_fail(SWIG_RuntimeError,
4489*b2055c35SXin Li "in method 'wrap_WebPEncodeLosslessRGB', unable to get buffer view");
4490*b2055c35SXin Li }
4491*b2055c35SXin Li arg1 = (uint8_t *)rgb_buffer1.buf;
4492*b2055c35SXin Li }
4493*b2055c35SXin Li if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) {
4494*b2055c35SXin Li int val;
4495*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj1, &val);
4496*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4497*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeLosslessRGB" "', argument " "2"" of type '" "int""'");
4498*b2055c35SXin Li }
4499*b2055c35SXin Li temp2 = (int)(val);
4500*b2055c35SXin Li arg2 = &temp2;
4501*b2055c35SXin Li res2 = SWIG_AddTmpMask(ecode);
4502*b2055c35SXin Li }
4503*b2055c35SXin Li if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) {
4504*b2055c35SXin Li int val;
4505*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj2, &val);
4506*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4507*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeLosslessRGB" "', argument " "3"" of type '" "int""'");
4508*b2055c35SXin Li }
4509*b2055c35SXin Li temp3 = (int)(val);
4510*b2055c35SXin Li arg3 = &temp3;
4511*b2055c35SXin Li res3 = SWIG_AddTmpMask(ecode);
4512*b2055c35SXin Li }
4513*b2055c35SXin Li ecode5 = SWIG_AsVal_int(obj3, &val5);
4514*b2055c35SXin Li if (!SWIG_IsOK(ecode5)) {
4515*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "wrap_WebPEncodeLosslessRGB" "', argument " "5"" of type '" "int""'");
4516*b2055c35SXin Li }
4517*b2055c35SXin Li arg5 = (int)(val5);
4518*b2055c35SXin Li ecode6 = SWIG_AsVal_int(obj4, &val6);
4519*b2055c35SXin Li if (!SWIG_IsOK(ecode6)) {
4520*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "wrap_WebPEncodeLosslessRGB" "', argument " "6"" of type '" "int""'");
4521*b2055c35SXin Li }
4522*b2055c35SXin Li arg6 = (int)(val6);
4523*b2055c35SXin Li ecode7 = SWIG_AsVal_int(obj5, &val7);
4524*b2055c35SXin Li if (!SWIG_IsOK(ecode7)) {
4525*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "wrap_WebPEncodeLosslessRGB" "', argument " "7"" of type '" "int""'");
4526*b2055c35SXin Li }
4527*b2055c35SXin Li arg7 = (int)(val7);
4528*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeLosslessRGB((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
4529*b2055c35SXin Li {
4530*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
4531*b2055c35SXin Li (const char*)result,
4532*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("wrap_WebPEncodeLosslessRGB", arg3, arg4));
4533*b2055c35SXin Li }
4534*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
4535*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
4536*b2055c35SXin Li } else {
4537*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
4538*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
4539*b2055c35SXin Li }
4540*b2055c35SXin Li {
4541*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4542*b2055c35SXin Li }
4543*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4544*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4545*b2055c35SXin Li free(result);
4546*b2055c35SXin Li return resultobj;
4547*b2055c35SXin Li fail:
4548*b2055c35SXin Li {
4549*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4550*b2055c35SXin Li }
4551*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4552*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4553*b2055c35SXin Li return NULL;
4554*b2055c35SXin Li }
4555*b2055c35SXin Li
4556*b2055c35SXin Li
_wrap_wrap_WebPEncodeLosslessBGR(PyObject * SWIGUNUSEDPARM (self),PyObject * args)4557*b2055c35SXin Li SWIGINTERN PyObject *_wrap_wrap_WebPEncodeLosslessBGR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4558*b2055c35SXin Li PyObject *resultobj = 0;
4559*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
4560*b2055c35SXin Li int *arg2 = (int *) 0 ;
4561*b2055c35SXin Li int *arg3 = (int *) 0 ;
4562*b2055c35SXin Li int *arg4 = (int *) 0 ;
4563*b2055c35SXin Li int arg5 ;
4564*b2055c35SXin Li int arg6 ;
4565*b2055c35SXin Li int arg7 ;
4566*b2055c35SXin Li Py_buffer rgb_buffer1 ;
4567*b2055c35SXin Li int temp2 ;
4568*b2055c35SXin Li int res2 = 0 ;
4569*b2055c35SXin Li int temp3 ;
4570*b2055c35SXin Li int res3 = 0 ;
4571*b2055c35SXin Li int temp4 ;
4572*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
4573*b2055c35SXin Li int val5 ;
4574*b2055c35SXin Li int ecode5 = 0 ;
4575*b2055c35SXin Li int val6 ;
4576*b2055c35SXin Li int ecode6 = 0 ;
4577*b2055c35SXin Li int val7 ;
4578*b2055c35SXin Li int ecode7 = 0 ;
4579*b2055c35SXin Li PyObject * obj0 = 0 ;
4580*b2055c35SXin Li PyObject * obj1 = 0 ;
4581*b2055c35SXin Li PyObject * obj2 = 0 ;
4582*b2055c35SXin Li PyObject * obj3 = 0 ;
4583*b2055c35SXin Li PyObject * obj4 = 0 ;
4584*b2055c35SXin Li PyObject * obj5 = 0 ;
4585*b2055c35SXin Li uint8_t *result = 0 ;
4586*b2055c35SXin Li
4587*b2055c35SXin Li arg4 = &temp4;
4588*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"OOOOOO:wrap_WebPEncodeLosslessBGR",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
4589*b2055c35SXin Li {
4590*b2055c35SXin Li // NB: with Python < 2.6 the old style buffer protocol may be used:
4591*b2055c35SXin Li // Py_ssize_t unused;
4592*b2055c35SXin Li // PyObject_AsReadBuffer(obj0, (const void**)(&arg1), &unused);
4593*b2055c35SXin Li if (!PyObject_CheckBuffer(obj0)) {
4594*b2055c35SXin Li SWIG_exception_fail(SWIG_TypeError,
4595*b2055c35SXin Li "in method 'wrap_WebPEncodeLosslessBGR', argument 1"
4596*b2055c35SXin Li " does not support the buffer interface");
4597*b2055c35SXin Li }
4598*b2055c35SXin Li if (PyObject_GetBuffer(obj0, &rgb_buffer1, PyBUF_SIMPLE)) {
4599*b2055c35SXin Li SWIG_exception_fail(SWIG_RuntimeError,
4600*b2055c35SXin Li "in method 'wrap_WebPEncodeLosslessBGR', unable to get buffer view");
4601*b2055c35SXin Li }
4602*b2055c35SXin Li arg1 = (uint8_t *)rgb_buffer1.buf;
4603*b2055c35SXin Li }
4604*b2055c35SXin Li if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) {
4605*b2055c35SXin Li int val;
4606*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj1, &val);
4607*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4608*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeLosslessBGR" "', argument " "2"" of type '" "int""'");
4609*b2055c35SXin Li }
4610*b2055c35SXin Li temp2 = (int)(val);
4611*b2055c35SXin Li arg2 = &temp2;
4612*b2055c35SXin Li res2 = SWIG_AddTmpMask(ecode);
4613*b2055c35SXin Li }
4614*b2055c35SXin Li if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) {
4615*b2055c35SXin Li int val;
4616*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj2, &val);
4617*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4618*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeLosslessBGR" "', argument " "3"" of type '" "int""'");
4619*b2055c35SXin Li }
4620*b2055c35SXin Li temp3 = (int)(val);
4621*b2055c35SXin Li arg3 = &temp3;
4622*b2055c35SXin Li res3 = SWIG_AddTmpMask(ecode);
4623*b2055c35SXin Li }
4624*b2055c35SXin Li ecode5 = SWIG_AsVal_int(obj3, &val5);
4625*b2055c35SXin Li if (!SWIG_IsOK(ecode5)) {
4626*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "wrap_WebPEncodeLosslessBGR" "', argument " "5"" of type '" "int""'");
4627*b2055c35SXin Li }
4628*b2055c35SXin Li arg5 = (int)(val5);
4629*b2055c35SXin Li ecode6 = SWIG_AsVal_int(obj4, &val6);
4630*b2055c35SXin Li if (!SWIG_IsOK(ecode6)) {
4631*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "wrap_WebPEncodeLosslessBGR" "', argument " "6"" of type '" "int""'");
4632*b2055c35SXin Li }
4633*b2055c35SXin Li arg6 = (int)(val6);
4634*b2055c35SXin Li ecode7 = SWIG_AsVal_int(obj5, &val7);
4635*b2055c35SXin Li if (!SWIG_IsOK(ecode7)) {
4636*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "wrap_WebPEncodeLosslessBGR" "', argument " "7"" of type '" "int""'");
4637*b2055c35SXin Li }
4638*b2055c35SXin Li arg7 = (int)(val7);
4639*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeLosslessBGR((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
4640*b2055c35SXin Li {
4641*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
4642*b2055c35SXin Li (const char*)result,
4643*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("wrap_WebPEncodeLosslessBGR", arg3, arg4));
4644*b2055c35SXin Li }
4645*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
4646*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
4647*b2055c35SXin Li } else {
4648*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
4649*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
4650*b2055c35SXin Li }
4651*b2055c35SXin Li {
4652*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4653*b2055c35SXin Li }
4654*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4655*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4656*b2055c35SXin Li free(result);
4657*b2055c35SXin Li return resultobj;
4658*b2055c35SXin Li fail:
4659*b2055c35SXin Li {
4660*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4661*b2055c35SXin Li }
4662*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4663*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4664*b2055c35SXin Li return NULL;
4665*b2055c35SXin Li }
4666*b2055c35SXin Li
4667*b2055c35SXin Li
_wrap_wrap_WebPEncodeLosslessRGBA(PyObject * SWIGUNUSEDPARM (self),PyObject * args)4668*b2055c35SXin Li SWIGINTERN PyObject *_wrap_wrap_WebPEncodeLosslessRGBA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4669*b2055c35SXin Li PyObject *resultobj = 0;
4670*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
4671*b2055c35SXin Li int *arg2 = (int *) 0 ;
4672*b2055c35SXin Li int *arg3 = (int *) 0 ;
4673*b2055c35SXin Li int *arg4 = (int *) 0 ;
4674*b2055c35SXin Li int arg5 ;
4675*b2055c35SXin Li int arg6 ;
4676*b2055c35SXin Li int arg7 ;
4677*b2055c35SXin Li Py_buffer rgb_buffer1 ;
4678*b2055c35SXin Li int temp2 ;
4679*b2055c35SXin Li int res2 = 0 ;
4680*b2055c35SXin Li int temp3 ;
4681*b2055c35SXin Li int res3 = 0 ;
4682*b2055c35SXin Li int temp4 ;
4683*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
4684*b2055c35SXin Li int val5 ;
4685*b2055c35SXin Li int ecode5 = 0 ;
4686*b2055c35SXin Li int val6 ;
4687*b2055c35SXin Li int ecode6 = 0 ;
4688*b2055c35SXin Li int val7 ;
4689*b2055c35SXin Li int ecode7 = 0 ;
4690*b2055c35SXin Li PyObject * obj0 = 0 ;
4691*b2055c35SXin Li PyObject * obj1 = 0 ;
4692*b2055c35SXin Li PyObject * obj2 = 0 ;
4693*b2055c35SXin Li PyObject * obj3 = 0 ;
4694*b2055c35SXin Li PyObject * obj4 = 0 ;
4695*b2055c35SXin Li PyObject * obj5 = 0 ;
4696*b2055c35SXin Li uint8_t *result = 0 ;
4697*b2055c35SXin Li
4698*b2055c35SXin Li arg4 = &temp4;
4699*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"OOOOOO:wrap_WebPEncodeLosslessRGBA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
4700*b2055c35SXin Li {
4701*b2055c35SXin Li // NB: with Python < 2.6 the old style buffer protocol may be used:
4702*b2055c35SXin Li // Py_ssize_t unused;
4703*b2055c35SXin Li // PyObject_AsReadBuffer(obj0, (const void**)(&arg1), &unused);
4704*b2055c35SXin Li if (!PyObject_CheckBuffer(obj0)) {
4705*b2055c35SXin Li SWIG_exception_fail(SWIG_TypeError,
4706*b2055c35SXin Li "in method 'wrap_WebPEncodeLosslessRGBA', argument 1"
4707*b2055c35SXin Li " does not support the buffer interface");
4708*b2055c35SXin Li }
4709*b2055c35SXin Li if (PyObject_GetBuffer(obj0, &rgb_buffer1, PyBUF_SIMPLE)) {
4710*b2055c35SXin Li SWIG_exception_fail(SWIG_RuntimeError,
4711*b2055c35SXin Li "in method 'wrap_WebPEncodeLosslessRGBA', unable to get buffer view");
4712*b2055c35SXin Li }
4713*b2055c35SXin Li arg1 = (uint8_t *)rgb_buffer1.buf;
4714*b2055c35SXin Li }
4715*b2055c35SXin Li if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) {
4716*b2055c35SXin Li int val;
4717*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj1, &val);
4718*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4719*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeLosslessRGBA" "', argument " "2"" of type '" "int""'");
4720*b2055c35SXin Li }
4721*b2055c35SXin Li temp2 = (int)(val);
4722*b2055c35SXin Li arg2 = &temp2;
4723*b2055c35SXin Li res2 = SWIG_AddTmpMask(ecode);
4724*b2055c35SXin Li }
4725*b2055c35SXin Li if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) {
4726*b2055c35SXin Li int val;
4727*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj2, &val);
4728*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4729*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeLosslessRGBA" "', argument " "3"" of type '" "int""'");
4730*b2055c35SXin Li }
4731*b2055c35SXin Li temp3 = (int)(val);
4732*b2055c35SXin Li arg3 = &temp3;
4733*b2055c35SXin Li res3 = SWIG_AddTmpMask(ecode);
4734*b2055c35SXin Li }
4735*b2055c35SXin Li ecode5 = SWIG_AsVal_int(obj3, &val5);
4736*b2055c35SXin Li if (!SWIG_IsOK(ecode5)) {
4737*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "wrap_WebPEncodeLosslessRGBA" "', argument " "5"" of type '" "int""'");
4738*b2055c35SXin Li }
4739*b2055c35SXin Li arg5 = (int)(val5);
4740*b2055c35SXin Li ecode6 = SWIG_AsVal_int(obj4, &val6);
4741*b2055c35SXin Li if (!SWIG_IsOK(ecode6)) {
4742*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "wrap_WebPEncodeLosslessRGBA" "', argument " "6"" of type '" "int""'");
4743*b2055c35SXin Li }
4744*b2055c35SXin Li arg6 = (int)(val6);
4745*b2055c35SXin Li ecode7 = SWIG_AsVal_int(obj5, &val7);
4746*b2055c35SXin Li if (!SWIG_IsOK(ecode7)) {
4747*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "wrap_WebPEncodeLosslessRGBA" "', argument " "7"" of type '" "int""'");
4748*b2055c35SXin Li }
4749*b2055c35SXin Li arg7 = (int)(val7);
4750*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeLosslessRGBA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
4751*b2055c35SXin Li {
4752*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
4753*b2055c35SXin Li (const char*)result,
4754*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("wrap_WebPEncodeLosslessRGBA", arg3, arg4));
4755*b2055c35SXin Li }
4756*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
4757*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
4758*b2055c35SXin Li } else {
4759*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
4760*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
4761*b2055c35SXin Li }
4762*b2055c35SXin Li {
4763*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4764*b2055c35SXin Li }
4765*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4766*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4767*b2055c35SXin Li free(result);
4768*b2055c35SXin Li return resultobj;
4769*b2055c35SXin Li fail:
4770*b2055c35SXin Li {
4771*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4772*b2055c35SXin Li }
4773*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4774*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4775*b2055c35SXin Li return NULL;
4776*b2055c35SXin Li }
4777*b2055c35SXin Li
4778*b2055c35SXin Li
_wrap_wrap_WebPEncodeLosslessBGRA(PyObject * SWIGUNUSEDPARM (self),PyObject * args)4779*b2055c35SXin Li SWIGINTERN PyObject *_wrap_wrap_WebPEncodeLosslessBGRA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4780*b2055c35SXin Li PyObject *resultobj = 0;
4781*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
4782*b2055c35SXin Li int *arg2 = (int *) 0 ;
4783*b2055c35SXin Li int *arg3 = (int *) 0 ;
4784*b2055c35SXin Li int *arg4 = (int *) 0 ;
4785*b2055c35SXin Li int arg5 ;
4786*b2055c35SXin Li int arg6 ;
4787*b2055c35SXin Li int arg7 ;
4788*b2055c35SXin Li Py_buffer rgb_buffer1 ;
4789*b2055c35SXin Li int temp2 ;
4790*b2055c35SXin Li int res2 = 0 ;
4791*b2055c35SXin Li int temp3 ;
4792*b2055c35SXin Li int res3 = 0 ;
4793*b2055c35SXin Li int temp4 ;
4794*b2055c35SXin Li int res4 = SWIG_TMPOBJ ;
4795*b2055c35SXin Li int val5 ;
4796*b2055c35SXin Li int ecode5 = 0 ;
4797*b2055c35SXin Li int val6 ;
4798*b2055c35SXin Li int ecode6 = 0 ;
4799*b2055c35SXin Li int val7 ;
4800*b2055c35SXin Li int ecode7 = 0 ;
4801*b2055c35SXin Li PyObject * obj0 = 0 ;
4802*b2055c35SXin Li PyObject * obj1 = 0 ;
4803*b2055c35SXin Li PyObject * obj2 = 0 ;
4804*b2055c35SXin Li PyObject * obj3 = 0 ;
4805*b2055c35SXin Li PyObject * obj4 = 0 ;
4806*b2055c35SXin Li PyObject * obj5 = 0 ;
4807*b2055c35SXin Li uint8_t *result = 0 ;
4808*b2055c35SXin Li
4809*b2055c35SXin Li arg4 = &temp4;
4810*b2055c35SXin Li if (!PyArg_ParseTuple(args,(char *)"OOOOOO:wrap_WebPEncodeLosslessBGRA",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
4811*b2055c35SXin Li {
4812*b2055c35SXin Li // NB: with Python < 2.6 the old style buffer protocol may be used:
4813*b2055c35SXin Li // Py_ssize_t unused;
4814*b2055c35SXin Li // PyObject_AsReadBuffer(obj0, (const void**)(&arg1), &unused);
4815*b2055c35SXin Li if (!PyObject_CheckBuffer(obj0)) {
4816*b2055c35SXin Li SWIG_exception_fail(SWIG_TypeError,
4817*b2055c35SXin Li "in method 'wrap_WebPEncodeLosslessBGRA', argument 1"
4818*b2055c35SXin Li " does not support the buffer interface");
4819*b2055c35SXin Li }
4820*b2055c35SXin Li if (PyObject_GetBuffer(obj0, &rgb_buffer1, PyBUF_SIMPLE)) {
4821*b2055c35SXin Li SWIG_exception_fail(SWIG_RuntimeError,
4822*b2055c35SXin Li "in method 'wrap_WebPEncodeLosslessBGRA', unable to get buffer view");
4823*b2055c35SXin Li }
4824*b2055c35SXin Li arg1 = (uint8_t *)rgb_buffer1.buf;
4825*b2055c35SXin Li }
4826*b2055c35SXin Li if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_int,0))))) {
4827*b2055c35SXin Li int val;
4828*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj1, &val);
4829*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4830*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeLosslessBGRA" "', argument " "2"" of type '" "int""'");
4831*b2055c35SXin Li }
4832*b2055c35SXin Li temp2 = (int)(val);
4833*b2055c35SXin Li arg2 = &temp2;
4834*b2055c35SXin Li res2 = SWIG_AddTmpMask(ecode);
4835*b2055c35SXin Li }
4836*b2055c35SXin Li if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_int,0))))) {
4837*b2055c35SXin Li int val;
4838*b2055c35SXin Li int ecode = SWIG_AsVal_int(obj2, &val);
4839*b2055c35SXin Li if (!SWIG_IsOK(ecode)) {
4840*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "wrap_WebPEncodeLosslessBGRA" "', argument " "3"" of type '" "int""'");
4841*b2055c35SXin Li }
4842*b2055c35SXin Li temp3 = (int)(val);
4843*b2055c35SXin Li arg3 = &temp3;
4844*b2055c35SXin Li res3 = SWIG_AddTmpMask(ecode);
4845*b2055c35SXin Li }
4846*b2055c35SXin Li ecode5 = SWIG_AsVal_int(obj3, &val5);
4847*b2055c35SXin Li if (!SWIG_IsOK(ecode5)) {
4848*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "wrap_WebPEncodeLosslessBGRA" "', argument " "5"" of type '" "int""'");
4849*b2055c35SXin Li }
4850*b2055c35SXin Li arg5 = (int)(val5);
4851*b2055c35SXin Li ecode6 = SWIG_AsVal_int(obj4, &val6);
4852*b2055c35SXin Li if (!SWIG_IsOK(ecode6)) {
4853*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "wrap_WebPEncodeLosslessBGRA" "', argument " "6"" of type '" "int""'");
4854*b2055c35SXin Li }
4855*b2055c35SXin Li arg6 = (int)(val6);
4856*b2055c35SXin Li ecode7 = SWIG_AsVal_int(obj5, &val7);
4857*b2055c35SXin Li if (!SWIG_IsOK(ecode7)) {
4858*b2055c35SXin Li SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "wrap_WebPEncodeLosslessBGRA" "', argument " "7"" of type '" "int""'");
4859*b2055c35SXin Li }
4860*b2055c35SXin Li arg7 = (int)(val7);
4861*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeLosslessBGRA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
4862*b2055c35SXin Li {
4863*b2055c35SXin Li resultobj = PyString_FromStringAndSize(
4864*b2055c35SXin Li (const char*)result,
4865*b2055c35SXin Li (result == NULL) ? 0 : ReturnedBufferSize("wrap_WebPEncodeLosslessBGRA", arg3, arg4));
4866*b2055c35SXin Li }
4867*b2055c35SXin Li if (SWIG_IsTmpObj(res4)) {
4868*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
4869*b2055c35SXin Li } else {
4870*b2055c35SXin Li int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
4871*b2055c35SXin Li resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
4872*b2055c35SXin Li }
4873*b2055c35SXin Li {
4874*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4875*b2055c35SXin Li }
4876*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4877*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4878*b2055c35SXin Li free(result);
4879*b2055c35SXin Li return resultobj;
4880*b2055c35SXin Li fail:
4881*b2055c35SXin Li {
4882*b2055c35SXin Li PyBuffer_Release(&rgb_buffer1);
4883*b2055c35SXin Li }
4884*b2055c35SXin Li if (SWIG_IsNewObj(res2)) free((char*)arg2);
4885*b2055c35SXin Li if (SWIG_IsNewObj(res3)) free((char*)arg3);
4886*b2055c35SXin Li return NULL;
4887*b2055c35SXin Li }
4888*b2055c35SXin Li
4889*b2055c35SXin Li
4890*b2055c35SXin Li static PyMethodDef SwigMethods[] = {
4891*b2055c35SXin Li { "SWIG_PyInstanceMethod_New", SWIG_PyInstanceMethod_New, METH_O, NULL},
4892*b2055c35SXin Li { "WebPGetDecoderVersion", _wrap_WebPGetDecoderVersion, METH_VARARGS, (char *)"WebPGetDecoderVersion() -> int"},
4893*b2055c35SXin Li { "WebPGetInfo", _wrap_WebPGetInfo, METH_VARARGS, (char *)"WebPGetInfo(uint8_t data) -> (width, height)"},
4894*b2055c35SXin Li { "WebPDecodeRGB", _wrap_WebPDecodeRGB, METH_VARARGS, (char *)"WebPDecodeRGB(uint8_t data) -> (rgb, width, height)"},
4895*b2055c35SXin Li { "WebPDecodeRGBA", _wrap_WebPDecodeRGBA, METH_VARARGS, (char *)"WebPDecodeRGBA(uint8_t data) -> (rgb, width, height)"},
4896*b2055c35SXin Li { "WebPDecodeARGB", _wrap_WebPDecodeARGB, METH_VARARGS, (char *)"WebPDecodeARGB(uint8_t data) -> (rgb, width, height)"},
4897*b2055c35SXin Li { "WebPDecodeBGR", _wrap_WebPDecodeBGR, METH_VARARGS, (char *)"WebPDecodeBGR(uint8_t data) -> (rgb, width, height)"},
4898*b2055c35SXin Li { "WebPDecodeBGRA", _wrap_WebPDecodeBGRA, METH_VARARGS, (char *)"WebPDecodeBGRA(uint8_t data) -> (rgb, width, height)"},
4899*b2055c35SXin Li { "WebPGetEncoderVersion", _wrap_WebPGetEncoderVersion, METH_VARARGS, (char *)"WebPGetEncoderVersion() -> int"},
4900*b2055c35SXin Li { "wrap_WebPEncodeRGB", _wrap_wrap_WebPEncodeRGB, METH_VARARGS, (char *)"private, do not call directly."},
4901*b2055c35SXin Li { "wrap_WebPEncodeBGR", _wrap_wrap_WebPEncodeBGR, METH_VARARGS, (char *)"private, do not call directly."},
4902*b2055c35SXin Li { "wrap_WebPEncodeRGBA", _wrap_wrap_WebPEncodeRGBA, METH_VARARGS, (char *)"private, do not call directly."},
4903*b2055c35SXin Li { "wrap_WebPEncodeBGRA", _wrap_wrap_WebPEncodeBGRA, METH_VARARGS, (char *)"private, do not call directly."},
4904*b2055c35SXin Li { "wrap_WebPEncodeLosslessRGB", _wrap_wrap_WebPEncodeLosslessRGB, METH_VARARGS, (char *)"private, do not call directly."},
4905*b2055c35SXin Li { "wrap_WebPEncodeLosslessBGR", _wrap_wrap_WebPEncodeLosslessBGR, METH_VARARGS, (char *)"private, do not call directly."},
4906*b2055c35SXin Li { "wrap_WebPEncodeLosslessRGBA", _wrap_wrap_WebPEncodeLosslessRGBA, METH_VARARGS, (char *)"private, do not call directly."},
4907*b2055c35SXin Li { "wrap_WebPEncodeLosslessBGRA", _wrap_wrap_WebPEncodeLosslessBGRA, METH_VARARGS, (char *)"private, do not call directly."},
4908*b2055c35SXin Li { NULL, NULL, 0, NULL }
4909*b2055c35SXin Li };
4910*b2055c35SXin Li
4911*b2055c35SXin Li
4912*b2055c35SXin Li /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
4913*b2055c35SXin Li
4914*b2055c35SXin Li static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
4915*b2055c35SXin Li static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0};
4916*b2055c35SXin Li static swig_type_info _swigt__p_uint8_t = {"_p_uint8_t", "uint8_t *", 0, 0, (void*)0, 0};
4917*b2055c35SXin Li
4918*b2055c35SXin Li static swig_type_info *swig_type_initial[] = {
4919*b2055c35SXin Li &_swigt__p_char,
4920*b2055c35SXin Li &_swigt__p_int,
4921*b2055c35SXin Li &_swigt__p_uint8_t,
4922*b2055c35SXin Li };
4923*b2055c35SXin Li
4924*b2055c35SXin Li static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
4925*b2055c35SXin Li static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
4926*b2055c35SXin Li static swig_cast_info _swigc__p_uint8_t[] = { {&_swigt__p_uint8_t, 0, 0, 0},{0, 0, 0, 0}};
4927*b2055c35SXin Li
4928*b2055c35SXin Li static swig_cast_info *swig_cast_initial[] = {
4929*b2055c35SXin Li _swigc__p_char,
4930*b2055c35SXin Li _swigc__p_int,
4931*b2055c35SXin Li _swigc__p_uint8_t,
4932*b2055c35SXin Li };
4933*b2055c35SXin Li
4934*b2055c35SXin Li
4935*b2055c35SXin Li /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
4936*b2055c35SXin Li
4937*b2055c35SXin Li static swig_const_info swig_const_table[] = {
4938*b2055c35SXin Li {0, 0, 0, 0.0, 0, 0}};
4939*b2055c35SXin Li
4940*b2055c35SXin Li #ifdef __cplusplus
4941*b2055c35SXin Li }
4942*b2055c35SXin Li #endif
4943*b2055c35SXin Li /* -----------------------------------------------------------------------------
4944*b2055c35SXin Li * Type initialization:
4945*b2055c35SXin Li * This problem is tough by the requirement that no dynamic
4946*b2055c35SXin Li * memory is used. Also, since swig_type_info structures store pointers to
4947*b2055c35SXin Li * swig_cast_info structures and swig_cast_info structures store pointers back
4948*b2055c35SXin Li * to swig_type_info structures, we need some lookup code at initialization.
4949*b2055c35SXin Li * The idea is that swig generates all the structures that are needed.
4950*b2055c35SXin Li * The runtime then collects these partially filled structures.
4951*b2055c35SXin Li * The SWIG_InitializeModule function takes these initial arrays out of
4952*b2055c35SXin Li * swig_module, and does all the lookup, filling in the swig_module.types
4953*b2055c35SXin Li * array with the correct data and linking the correct swig_cast_info
4954*b2055c35SXin Li * structures together.
4955*b2055c35SXin Li *
4956*b2055c35SXin Li * The generated swig_type_info structures are assigned statically to an initial
4957*b2055c35SXin Li * array. We just loop through that array, and handle each type individually.
4958*b2055c35SXin Li * First we lookup if this type has been already loaded, and if so, use the
4959*b2055c35SXin Li * loaded structure instead of the generated one. Then we have to fill in the
4960*b2055c35SXin Li * cast linked list. The cast data is initially stored in something like a
4961*b2055c35SXin Li * two-dimensional array. Each row corresponds to a type (there are the same
4962*b2055c35SXin Li * number of rows as there are in the swig_type_initial array). Each entry in
4963*b2055c35SXin Li * a column is one of the swig_cast_info structures for that type.
4964*b2055c35SXin Li * The cast_initial array is actually an array of arrays, because each row has
4965*b2055c35SXin Li * a variable number of columns. So to actually build the cast linked list,
4966*b2055c35SXin Li * we find the array of casts associated with the type, and loop through it
4967*b2055c35SXin Li * adding the casts to the list. The one last trick we need to do is making
4968*b2055c35SXin Li * sure the type pointer in the swig_cast_info struct is correct.
4969*b2055c35SXin Li *
4970*b2055c35SXin Li * First off, we lookup the cast->type name to see if it is already loaded.
4971*b2055c35SXin Li * There are three cases to handle:
4972*b2055c35SXin Li * 1) If the cast->type has already been loaded AND the type we are adding
4973*b2055c35SXin Li * casting info to has not been loaded (it is in this module), THEN we
4974*b2055c35SXin Li * replace the cast->type pointer with the type pointer that has already
4975*b2055c35SXin Li * been loaded.
4976*b2055c35SXin Li * 2) If BOTH types (the one we are adding casting info to, and the
4977*b2055c35SXin Li * cast->type) are loaded, THEN the cast info has already been loaded by
4978*b2055c35SXin Li * the previous module so we just ignore it.
4979*b2055c35SXin Li * 3) Finally, if cast->type has not already been loaded, then we add that
4980*b2055c35SXin Li * swig_cast_info to the linked list (because the cast->type) pointer will
4981*b2055c35SXin Li * be correct.
4982*b2055c35SXin Li * ----------------------------------------------------------------------------- */
4983*b2055c35SXin Li
4984*b2055c35SXin Li #ifdef __cplusplus
4985*b2055c35SXin Li extern "C" {
4986*b2055c35SXin Li #if 0
4987*b2055c35SXin Li } /* c-mode */
4988*b2055c35SXin Li #endif
4989*b2055c35SXin Li #endif
4990*b2055c35SXin Li
4991*b2055c35SXin Li #if 0
4992*b2055c35SXin Li #define SWIGRUNTIME_DEBUG
4993*b2055c35SXin Li #endif
4994*b2055c35SXin Li
4995*b2055c35SXin Li
4996*b2055c35SXin Li SWIGRUNTIME void
SWIG_InitializeModule(void * clientdata)4997*b2055c35SXin Li SWIG_InitializeModule(void *clientdata) {
4998*b2055c35SXin Li size_t i;
4999*b2055c35SXin Li swig_module_info *module_head, *iter;
5000*b2055c35SXin Li int init;
5001*b2055c35SXin Li
5002*b2055c35SXin Li /* check to see if the circular list has been setup, if not, set it up */
5003*b2055c35SXin Li if (swig_module.next==0) {
5004*b2055c35SXin Li /* Initialize the swig_module */
5005*b2055c35SXin Li swig_module.type_initial = swig_type_initial;
5006*b2055c35SXin Li swig_module.cast_initial = swig_cast_initial;
5007*b2055c35SXin Li swig_module.next = &swig_module;
5008*b2055c35SXin Li init = 1;
5009*b2055c35SXin Li } else {
5010*b2055c35SXin Li init = 0;
5011*b2055c35SXin Li }
5012*b2055c35SXin Li
5013*b2055c35SXin Li /* Try and load any already created modules */
5014*b2055c35SXin Li module_head = SWIG_GetModule(clientdata);
5015*b2055c35SXin Li if (!module_head) {
5016*b2055c35SXin Li /* This is the first module loaded for this interpreter */
5017*b2055c35SXin Li /* so set the swig module into the interpreter */
5018*b2055c35SXin Li SWIG_SetModule(clientdata, &swig_module);
5019*b2055c35SXin Li } else {
5020*b2055c35SXin Li /* the interpreter has loaded a SWIG module, but has it loaded this one? */
5021*b2055c35SXin Li iter=module_head;
5022*b2055c35SXin Li do {
5023*b2055c35SXin Li if (iter==&swig_module) {
5024*b2055c35SXin Li /* Our module is already in the list, so there's nothing more to do. */
5025*b2055c35SXin Li return;
5026*b2055c35SXin Li }
5027*b2055c35SXin Li iter=iter->next;
5028*b2055c35SXin Li } while (iter!= module_head);
5029*b2055c35SXin Li
5030*b2055c35SXin Li /* otherwise we must add our module into the list */
5031*b2055c35SXin Li swig_module.next = module_head->next;
5032*b2055c35SXin Li module_head->next = &swig_module;
5033*b2055c35SXin Li }
5034*b2055c35SXin Li
5035*b2055c35SXin Li /* When multiple interpreters are used, a module could have already been initialized in
5036*b2055c35SXin Li a different interpreter, but not yet have a pointer in this interpreter.
5037*b2055c35SXin Li In this case, we do not want to continue adding types... everything should be
5038*b2055c35SXin Li set up already */
5039*b2055c35SXin Li if (init == 0) return;
5040*b2055c35SXin Li
5041*b2055c35SXin Li /* Now work on filling in swig_module.types */
5042*b2055c35SXin Li #ifdef SWIGRUNTIME_DEBUG
5043*b2055c35SXin Li printf("SWIG_InitializeModule: size %d\n", swig_module.size);
5044*b2055c35SXin Li #endif
5045*b2055c35SXin Li for (i = 0; i < swig_module.size; ++i) {
5046*b2055c35SXin Li swig_type_info *type = 0;
5047*b2055c35SXin Li swig_type_info *ret;
5048*b2055c35SXin Li swig_cast_info *cast;
5049*b2055c35SXin Li
5050*b2055c35SXin Li #ifdef SWIGRUNTIME_DEBUG
5051*b2055c35SXin Li printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
5052*b2055c35SXin Li #endif
5053*b2055c35SXin Li
5054*b2055c35SXin Li /* if there is another module already loaded */
5055*b2055c35SXin Li if (swig_module.next != &swig_module) {
5056*b2055c35SXin Li type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
5057*b2055c35SXin Li }
5058*b2055c35SXin Li if (type) {
5059*b2055c35SXin Li /* Overwrite clientdata field */
5060*b2055c35SXin Li #ifdef SWIGRUNTIME_DEBUG
5061*b2055c35SXin Li printf("SWIG_InitializeModule: found type %s\n", type->name);
5062*b2055c35SXin Li #endif
5063*b2055c35SXin Li if (swig_module.type_initial[i]->clientdata) {
5064*b2055c35SXin Li type->clientdata = swig_module.type_initial[i]->clientdata;
5065*b2055c35SXin Li #ifdef SWIGRUNTIME_DEBUG
5066*b2055c35SXin Li printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
5067*b2055c35SXin Li #endif
5068*b2055c35SXin Li }
5069*b2055c35SXin Li } else {
5070*b2055c35SXin Li type = swig_module.type_initial[i];
5071*b2055c35SXin Li }
5072*b2055c35SXin Li
5073*b2055c35SXin Li /* Insert casting types */
5074*b2055c35SXin Li cast = swig_module.cast_initial[i];
5075*b2055c35SXin Li while (cast->type) {
5076*b2055c35SXin Li /* Don't need to add information already in the list */
5077*b2055c35SXin Li ret = 0;
5078*b2055c35SXin Li #ifdef SWIGRUNTIME_DEBUG
5079*b2055c35SXin Li printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
5080*b2055c35SXin Li #endif
5081*b2055c35SXin Li if (swig_module.next != &swig_module) {
5082*b2055c35SXin Li ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
5083*b2055c35SXin Li #ifdef SWIGRUNTIME_DEBUG
5084*b2055c35SXin Li if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
5085*b2055c35SXin Li #endif
5086*b2055c35SXin Li }
5087*b2055c35SXin Li if (ret) {
5088*b2055c35SXin Li if (type == swig_module.type_initial[i]) {
5089*b2055c35SXin Li #ifdef SWIGRUNTIME_DEBUG
5090*b2055c35SXin Li printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
5091*b2055c35SXin Li #endif
5092*b2055c35SXin Li cast->type = ret;
5093*b2055c35SXin Li ret = 0;
5094*b2055c35SXin Li } else {
5095*b2055c35SXin Li /* Check for casting already in the list */
5096*b2055c35SXin Li swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
5097*b2055c35SXin Li #ifdef SWIGRUNTIME_DEBUG
5098*b2055c35SXin Li if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
5099*b2055c35SXin Li #endif
5100*b2055c35SXin Li if (!ocast) ret = 0;
5101*b2055c35SXin Li }
5102*b2055c35SXin Li }
5103*b2055c35SXin Li
5104*b2055c35SXin Li if (!ret) {
5105*b2055c35SXin Li #ifdef SWIGRUNTIME_DEBUG
5106*b2055c35SXin Li printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
5107*b2055c35SXin Li #endif
5108*b2055c35SXin Li if (type->cast) {
5109*b2055c35SXin Li type->cast->prev = cast;
5110*b2055c35SXin Li cast->next = type->cast;
5111*b2055c35SXin Li }
5112*b2055c35SXin Li type->cast = cast;
5113*b2055c35SXin Li }
5114*b2055c35SXin Li cast++;
5115*b2055c35SXin Li }
5116*b2055c35SXin Li /* Set entry in modules->types array equal to the type */
5117*b2055c35SXin Li swig_module.types[i] = type;
5118*b2055c35SXin Li }
5119*b2055c35SXin Li swig_module.types[i] = 0;
5120*b2055c35SXin Li
5121*b2055c35SXin Li #ifdef SWIGRUNTIME_DEBUG
5122*b2055c35SXin Li printf("**** SWIG_InitializeModule: Cast List ******\n");
5123*b2055c35SXin Li for (i = 0; i < swig_module.size; ++i) {
5124*b2055c35SXin Li int j = 0;
5125*b2055c35SXin Li swig_cast_info *cast = swig_module.cast_initial[i];
5126*b2055c35SXin Li printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
5127*b2055c35SXin Li while (cast->type) {
5128*b2055c35SXin Li printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
5129*b2055c35SXin Li cast++;
5130*b2055c35SXin Li ++j;
5131*b2055c35SXin Li }
5132*b2055c35SXin Li printf("---- Total casts: %d\n",j);
5133*b2055c35SXin Li }
5134*b2055c35SXin Li printf("**** SWIG_InitializeModule: Cast List ******\n");
5135*b2055c35SXin Li #endif
5136*b2055c35SXin Li }
5137*b2055c35SXin Li
5138*b2055c35SXin Li /* This function will propagate the clientdata field of type to
5139*b2055c35SXin Li * any new swig_type_info structures that have been added into the list
5140*b2055c35SXin Li * of equivalent types. It is like calling
5141*b2055c35SXin Li * SWIG_TypeClientData(type, clientdata) a second time.
5142*b2055c35SXin Li */
5143*b2055c35SXin Li SWIGRUNTIME void
SWIG_PropagateClientData(void)5144*b2055c35SXin Li SWIG_PropagateClientData(void) {
5145*b2055c35SXin Li size_t i;
5146*b2055c35SXin Li swig_cast_info *equiv;
5147*b2055c35SXin Li static int init_run = 0;
5148*b2055c35SXin Li
5149*b2055c35SXin Li if (init_run) return;
5150*b2055c35SXin Li init_run = 1;
5151*b2055c35SXin Li
5152*b2055c35SXin Li for (i = 0; i < swig_module.size; i++) {
5153*b2055c35SXin Li if (swig_module.types[i]->clientdata) {
5154*b2055c35SXin Li equiv = swig_module.types[i]->cast;
5155*b2055c35SXin Li while (equiv) {
5156*b2055c35SXin Li if (!equiv->converter) {
5157*b2055c35SXin Li if (equiv->type && !equiv->type->clientdata)
5158*b2055c35SXin Li SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
5159*b2055c35SXin Li }
5160*b2055c35SXin Li equiv = equiv->next;
5161*b2055c35SXin Li }
5162*b2055c35SXin Li }
5163*b2055c35SXin Li }
5164*b2055c35SXin Li }
5165*b2055c35SXin Li
5166*b2055c35SXin Li #ifdef __cplusplus
5167*b2055c35SXin Li #if 0
5168*b2055c35SXin Li {
5169*b2055c35SXin Li /* c-mode */
5170*b2055c35SXin Li #endif
5171*b2055c35SXin Li }
5172*b2055c35SXin Li #endif
5173*b2055c35SXin Li
5174*b2055c35SXin Li
5175*b2055c35SXin Li
5176*b2055c35SXin Li #ifdef __cplusplus
5177*b2055c35SXin Li extern "C" {
5178*b2055c35SXin Li #endif
5179*b2055c35SXin Li
5180*b2055c35SXin Li /* Python-specific SWIG API */
5181*b2055c35SXin Li #define SWIG_newvarlink() SWIG_Python_newvarlink()
5182*b2055c35SXin Li #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr)
5183*b2055c35SXin Li #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants)
5184*b2055c35SXin Li
5185*b2055c35SXin Li /* -----------------------------------------------------------------------------
5186*b2055c35SXin Li * global variable support code.
5187*b2055c35SXin Li * ----------------------------------------------------------------------------- */
5188*b2055c35SXin Li
5189*b2055c35SXin Li typedef struct swig_globalvar {
5190*b2055c35SXin Li char *name; /* Name of global variable */
5191*b2055c35SXin Li PyObject *(*get_attr)(void); /* Return the current value */
5192*b2055c35SXin Li int (*set_attr)(PyObject *); /* Set the value */
5193*b2055c35SXin Li struct swig_globalvar *next;
5194*b2055c35SXin Li } swig_globalvar;
5195*b2055c35SXin Li
5196*b2055c35SXin Li typedef struct swig_varlinkobject {
5197*b2055c35SXin Li PyObject_HEAD
5198*b2055c35SXin Li swig_globalvar *vars;
5199*b2055c35SXin Li } swig_varlinkobject;
5200*b2055c35SXin Li
5201*b2055c35SXin Li SWIGINTERN PyObject *
swig_varlink_repr(swig_varlinkobject * SWIGUNUSEDPARM (v))5202*b2055c35SXin Li swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) {
5203*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
5204*b2055c35SXin Li return PyUnicode_InternFromString("<Swig global variables>");
5205*b2055c35SXin Li #else
5206*b2055c35SXin Li return PyString_FromString("<Swig global variables>");
5207*b2055c35SXin Li #endif
5208*b2055c35SXin Li }
5209*b2055c35SXin Li
5210*b2055c35SXin Li SWIGINTERN PyObject *
swig_varlink_str(swig_varlinkobject * v)5211*b2055c35SXin Li swig_varlink_str(swig_varlinkobject *v) {
5212*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
5213*b2055c35SXin Li PyObject *str = PyUnicode_InternFromString("(");
5214*b2055c35SXin Li PyObject *tail;
5215*b2055c35SXin Li PyObject *joined;
5216*b2055c35SXin Li swig_globalvar *var;
5217*b2055c35SXin Li for (var = v->vars; var; var=var->next) {
5218*b2055c35SXin Li tail = PyUnicode_FromString(var->name);
5219*b2055c35SXin Li joined = PyUnicode_Concat(str, tail);
5220*b2055c35SXin Li Py_DecRef(str);
5221*b2055c35SXin Li Py_DecRef(tail);
5222*b2055c35SXin Li str = joined;
5223*b2055c35SXin Li if (var->next) {
5224*b2055c35SXin Li tail = PyUnicode_InternFromString(", ");
5225*b2055c35SXin Li joined = PyUnicode_Concat(str, tail);
5226*b2055c35SXin Li Py_DecRef(str);
5227*b2055c35SXin Li Py_DecRef(tail);
5228*b2055c35SXin Li str = joined;
5229*b2055c35SXin Li }
5230*b2055c35SXin Li }
5231*b2055c35SXin Li tail = PyUnicode_InternFromString(")");
5232*b2055c35SXin Li joined = PyUnicode_Concat(str, tail);
5233*b2055c35SXin Li Py_DecRef(str);
5234*b2055c35SXin Li Py_DecRef(tail);
5235*b2055c35SXin Li str = joined;
5236*b2055c35SXin Li #else
5237*b2055c35SXin Li PyObject *str = PyString_FromString("(");
5238*b2055c35SXin Li swig_globalvar *var;
5239*b2055c35SXin Li for (var = v->vars; var; var=var->next) {
5240*b2055c35SXin Li PyString_ConcatAndDel(&str,PyString_FromString(var->name));
5241*b2055c35SXin Li if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", "));
5242*b2055c35SXin Li }
5243*b2055c35SXin Li PyString_ConcatAndDel(&str,PyString_FromString(")"));
5244*b2055c35SXin Li #endif
5245*b2055c35SXin Li return str;
5246*b2055c35SXin Li }
5247*b2055c35SXin Li
5248*b2055c35SXin Li SWIGINTERN int
swig_varlink_print(swig_varlinkobject * v,FILE * fp,int SWIGUNUSEDPARM (flags))5249*b2055c35SXin Li swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) {
5250*b2055c35SXin Li char *tmp;
5251*b2055c35SXin Li PyObject *str = swig_varlink_str(v);
5252*b2055c35SXin Li fprintf(fp,"Swig global variables ");
5253*b2055c35SXin Li fprintf(fp,"%s\n", tmp = SWIG_Python_str_AsChar(str));
5254*b2055c35SXin Li SWIG_Python_str_DelForPy3(tmp);
5255*b2055c35SXin Li Py_DECREF(str);
5256*b2055c35SXin Li return 0;
5257*b2055c35SXin Li }
5258*b2055c35SXin Li
5259*b2055c35SXin Li SWIGINTERN void
swig_varlink_dealloc(swig_varlinkobject * v)5260*b2055c35SXin Li swig_varlink_dealloc(swig_varlinkobject *v) {
5261*b2055c35SXin Li swig_globalvar *var = v->vars;
5262*b2055c35SXin Li while (var) {
5263*b2055c35SXin Li swig_globalvar *n = var->next;
5264*b2055c35SXin Li free(var->name);
5265*b2055c35SXin Li free(var);
5266*b2055c35SXin Li var = n;
5267*b2055c35SXin Li }
5268*b2055c35SXin Li }
5269*b2055c35SXin Li
5270*b2055c35SXin Li SWIGINTERN PyObject *
swig_varlink_getattr(swig_varlinkobject * v,char * n)5271*b2055c35SXin Li swig_varlink_getattr(swig_varlinkobject *v, char *n) {
5272*b2055c35SXin Li PyObject *res = NULL;
5273*b2055c35SXin Li swig_globalvar *var = v->vars;
5274*b2055c35SXin Li while (var) {
5275*b2055c35SXin Li if (strcmp(var->name,n) == 0) {
5276*b2055c35SXin Li res = (*var->get_attr)();
5277*b2055c35SXin Li break;
5278*b2055c35SXin Li }
5279*b2055c35SXin Li var = var->next;
5280*b2055c35SXin Li }
5281*b2055c35SXin Li if (res == NULL && !PyErr_Occurred()) {
5282*b2055c35SXin Li PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n);
5283*b2055c35SXin Li }
5284*b2055c35SXin Li return res;
5285*b2055c35SXin Li }
5286*b2055c35SXin Li
5287*b2055c35SXin Li SWIGINTERN int
swig_varlink_setattr(swig_varlinkobject * v,char * n,PyObject * p)5288*b2055c35SXin Li swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
5289*b2055c35SXin Li int res = 1;
5290*b2055c35SXin Li swig_globalvar *var = v->vars;
5291*b2055c35SXin Li while (var) {
5292*b2055c35SXin Li if (strcmp(var->name,n) == 0) {
5293*b2055c35SXin Li res = (*var->set_attr)(p);
5294*b2055c35SXin Li break;
5295*b2055c35SXin Li }
5296*b2055c35SXin Li var = var->next;
5297*b2055c35SXin Li }
5298*b2055c35SXin Li if (res == 1 && !PyErr_Occurred()) {
5299*b2055c35SXin Li PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n);
5300*b2055c35SXin Li }
5301*b2055c35SXin Li return res;
5302*b2055c35SXin Li }
5303*b2055c35SXin Li
5304*b2055c35SXin Li SWIGINTERN PyTypeObject*
swig_varlink_type(void)5305*b2055c35SXin Li swig_varlink_type(void) {
5306*b2055c35SXin Li static char varlink__doc__[] = "Swig var link object";
5307*b2055c35SXin Li static PyTypeObject varlink_type;
5308*b2055c35SXin Li static int type_init = 0;
5309*b2055c35SXin Li if (!type_init) {
5310*b2055c35SXin Li const PyTypeObject tmp = {
5311*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
5312*b2055c35SXin Li PyVarObject_HEAD_INIT(NULL, 0)
5313*b2055c35SXin Li #else
5314*b2055c35SXin Li PyObject_HEAD_INIT(NULL)
5315*b2055c35SXin Li 0, /* ob_size */
5316*b2055c35SXin Li #endif
5317*b2055c35SXin Li (char *)"swigvarlink", /* tp_name */
5318*b2055c35SXin Li sizeof(swig_varlinkobject), /* tp_basicsize */
5319*b2055c35SXin Li 0, /* tp_itemsize */
5320*b2055c35SXin Li (destructor) swig_varlink_dealloc, /* tp_dealloc */
5321*b2055c35SXin Li (printfunc) swig_varlink_print, /* tp_print */
5322*b2055c35SXin Li (getattrfunc) swig_varlink_getattr, /* tp_getattr */
5323*b2055c35SXin Li (setattrfunc) swig_varlink_setattr, /* tp_setattr */
5324*b2055c35SXin Li 0, /* tp_compare */
5325*b2055c35SXin Li (reprfunc) swig_varlink_repr, /* tp_repr */
5326*b2055c35SXin Li 0, /* tp_as_number */
5327*b2055c35SXin Li 0, /* tp_as_sequence */
5328*b2055c35SXin Li 0, /* tp_as_mapping */
5329*b2055c35SXin Li 0, /* tp_hash */
5330*b2055c35SXin Li 0, /* tp_call */
5331*b2055c35SXin Li (reprfunc) swig_varlink_str, /* tp_str */
5332*b2055c35SXin Li 0, /* tp_getattro */
5333*b2055c35SXin Li 0, /* tp_setattro */
5334*b2055c35SXin Li 0, /* tp_as_buffer */
5335*b2055c35SXin Li 0, /* tp_flags */
5336*b2055c35SXin Li varlink__doc__, /* tp_doc */
5337*b2055c35SXin Li 0, /* tp_traverse */
5338*b2055c35SXin Li 0, /* tp_clear */
5339*b2055c35SXin Li 0, /* tp_richcompare */
5340*b2055c35SXin Li 0, /* tp_weaklistoffset */
5341*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02020000
5342*b2055c35SXin Li 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
5343*b2055c35SXin Li #endif
5344*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02030000
5345*b2055c35SXin Li 0, /* tp_del */
5346*b2055c35SXin Li #endif
5347*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02060000
5348*b2055c35SXin Li 0, /* tp_version_tag */
5349*b2055c35SXin Li #endif
5350*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03040000
5351*b2055c35SXin Li 0, /* tp_finalize */
5352*b2055c35SXin Li #endif
5353*b2055c35SXin Li #ifdef COUNT_ALLOCS
5354*b2055c35SXin Li 0, /* tp_allocs */
5355*b2055c35SXin Li 0, /* tp_frees */
5356*b2055c35SXin Li 0, /* tp_maxalloc */
5357*b2055c35SXin Li #if PY_VERSION_HEX >= 0x02050000
5358*b2055c35SXin Li 0, /* tp_prev */
5359*b2055c35SXin Li #endif
5360*b2055c35SXin Li 0 /* tp_next */
5361*b2055c35SXin Li #endif
5362*b2055c35SXin Li };
5363*b2055c35SXin Li varlink_type = tmp;
5364*b2055c35SXin Li type_init = 1;
5365*b2055c35SXin Li #if PY_VERSION_HEX < 0x02020000
5366*b2055c35SXin Li varlink_type.ob_type = &PyType_Type;
5367*b2055c35SXin Li #else
5368*b2055c35SXin Li if (PyType_Ready(&varlink_type) < 0)
5369*b2055c35SXin Li return NULL;
5370*b2055c35SXin Li #endif
5371*b2055c35SXin Li }
5372*b2055c35SXin Li return &varlink_type;
5373*b2055c35SXin Li }
5374*b2055c35SXin Li
5375*b2055c35SXin Li /* Create a variable linking object for use later */
5376*b2055c35SXin Li SWIGINTERN PyObject *
SWIG_Python_newvarlink(void)5377*b2055c35SXin Li SWIG_Python_newvarlink(void) {
5378*b2055c35SXin Li swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type());
5379*b2055c35SXin Li if (result) {
5380*b2055c35SXin Li result->vars = 0;
5381*b2055c35SXin Li }
5382*b2055c35SXin Li return ((PyObject*) result);
5383*b2055c35SXin Li }
5384*b2055c35SXin Li
5385*b2055c35SXin Li SWIGINTERN void
SWIG_Python_addvarlink(PyObject * p,char * name,PyObject * (* get_attr)(void),int (* set_attr)(PyObject * p))5386*b2055c35SXin Li SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
5387*b2055c35SXin Li swig_varlinkobject *v = (swig_varlinkobject *) p;
5388*b2055c35SXin Li swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar));
5389*b2055c35SXin Li if (gv) {
5390*b2055c35SXin Li size_t size = strlen(name)+1;
5391*b2055c35SXin Li gv->name = (char *)malloc(size);
5392*b2055c35SXin Li if (gv->name) {
5393*b2055c35SXin Li strncpy(gv->name,name,size);
5394*b2055c35SXin Li gv->get_attr = get_attr;
5395*b2055c35SXin Li gv->set_attr = set_attr;
5396*b2055c35SXin Li gv->next = v->vars;
5397*b2055c35SXin Li }
5398*b2055c35SXin Li }
5399*b2055c35SXin Li v->vars = gv;
5400*b2055c35SXin Li }
5401*b2055c35SXin Li
5402*b2055c35SXin Li SWIGINTERN PyObject *
SWIG_globals(void)5403*b2055c35SXin Li SWIG_globals(void) {
5404*b2055c35SXin Li static PyObject *_SWIG_globals = 0;
5405*b2055c35SXin Li if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink();
5406*b2055c35SXin Li return _SWIG_globals;
5407*b2055c35SXin Li }
5408*b2055c35SXin Li
5409*b2055c35SXin Li /* -----------------------------------------------------------------------------
5410*b2055c35SXin Li * constants/methods manipulation
5411*b2055c35SXin Li * ----------------------------------------------------------------------------- */
5412*b2055c35SXin Li
5413*b2055c35SXin Li /* Install Constants */
5414*b2055c35SXin Li SWIGINTERN void
SWIG_Python_InstallConstants(PyObject * d,swig_const_info constants[])5415*b2055c35SXin Li SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) {
5416*b2055c35SXin Li PyObject *obj = 0;
5417*b2055c35SXin Li size_t i;
5418*b2055c35SXin Li for (i = 0; constants[i].type; ++i) {
5419*b2055c35SXin Li switch(constants[i].type) {
5420*b2055c35SXin Li case SWIG_PY_POINTER:
5421*b2055c35SXin Li obj = SWIG_InternalNewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
5422*b2055c35SXin Li break;
5423*b2055c35SXin Li case SWIG_PY_BINARY:
5424*b2055c35SXin Li obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
5425*b2055c35SXin Li break;
5426*b2055c35SXin Li default:
5427*b2055c35SXin Li obj = 0;
5428*b2055c35SXin Li break;
5429*b2055c35SXin Li }
5430*b2055c35SXin Li if (obj) {
5431*b2055c35SXin Li PyDict_SetItemString(d, constants[i].name, obj);
5432*b2055c35SXin Li Py_DECREF(obj);
5433*b2055c35SXin Li }
5434*b2055c35SXin Li }
5435*b2055c35SXin Li }
5436*b2055c35SXin Li
5437*b2055c35SXin Li /* -----------------------------------------------------------------------------*/
5438*b2055c35SXin Li /* Fix SwigMethods to carry the callback ptrs when needed */
5439*b2055c35SXin Li /* -----------------------------------------------------------------------------*/
5440*b2055c35SXin Li
5441*b2055c35SXin Li SWIGINTERN void
SWIG_Python_FixMethods(PyMethodDef * methods,swig_const_info * const_table,swig_type_info ** types,swig_type_info ** types_initial)5442*b2055c35SXin Li SWIG_Python_FixMethods(PyMethodDef *methods,
5443*b2055c35SXin Li swig_const_info *const_table,
5444*b2055c35SXin Li swig_type_info **types,
5445*b2055c35SXin Li swig_type_info **types_initial) {
5446*b2055c35SXin Li size_t i;
5447*b2055c35SXin Li for (i = 0; methods[i].ml_name; ++i) {
5448*b2055c35SXin Li const char *c = methods[i].ml_doc;
5449*b2055c35SXin Li if (!c) continue;
5450*b2055c35SXin Li c = strstr(c, "swig_ptr: ");
5451*b2055c35SXin Li if (c) {
5452*b2055c35SXin Li int j;
5453*b2055c35SXin Li swig_const_info *ci = 0;
5454*b2055c35SXin Li const char *name = c + 10;
5455*b2055c35SXin Li for (j = 0; const_table[j].type; ++j) {
5456*b2055c35SXin Li if (strncmp(const_table[j].name, name,
5457*b2055c35SXin Li strlen(const_table[j].name)) == 0) {
5458*b2055c35SXin Li ci = &(const_table[j]);
5459*b2055c35SXin Li break;
5460*b2055c35SXin Li }
5461*b2055c35SXin Li }
5462*b2055c35SXin Li if (ci) {
5463*b2055c35SXin Li void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
5464*b2055c35SXin Li if (ptr) {
5465*b2055c35SXin Li size_t shift = (ci->ptype) - types;
5466*b2055c35SXin Li swig_type_info *ty = types_initial[shift];
5467*b2055c35SXin Li size_t ldoc = (c - methods[i].ml_doc);
5468*b2055c35SXin Li size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
5469*b2055c35SXin Li char *ndoc = (char*)malloc(ldoc + lptr + 10);
5470*b2055c35SXin Li if (ndoc) {
5471*b2055c35SXin Li char *buff = ndoc;
5472*b2055c35SXin Li memcpy(buff, methods[i].ml_doc, ldoc);
5473*b2055c35SXin Li buff += ldoc;
5474*b2055c35SXin Li memcpy(buff, "swig_ptr: ", 10);
5475*b2055c35SXin Li buff += 10;
5476*b2055c35SXin Li SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
5477*b2055c35SXin Li methods[i].ml_doc = ndoc;
5478*b2055c35SXin Li }
5479*b2055c35SXin Li }
5480*b2055c35SXin Li }
5481*b2055c35SXin Li }
5482*b2055c35SXin Li }
5483*b2055c35SXin Li }
5484*b2055c35SXin Li
5485*b2055c35SXin Li #ifdef __cplusplus
5486*b2055c35SXin Li }
5487*b2055c35SXin Li #endif
5488*b2055c35SXin Li
5489*b2055c35SXin Li /* -----------------------------------------------------------------------------*
5490*b2055c35SXin Li * Partial Init method
5491*b2055c35SXin Li * -----------------------------------------------------------------------------*/
5492*b2055c35SXin Li
5493*b2055c35SXin Li #ifdef __cplusplus
5494*b2055c35SXin Li extern "C"
5495*b2055c35SXin Li #endif
5496*b2055c35SXin Li
5497*b2055c35SXin Li SWIGEXPORT
5498*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
5499*b2055c35SXin Li PyObject*
5500*b2055c35SXin Li #else
5501*b2055c35SXin Li void
5502*b2055c35SXin Li #endif
SWIG_init(void)5503*b2055c35SXin Li SWIG_init(void) {
5504*b2055c35SXin Li PyObject *m, *d, *md;
5505*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
5506*b2055c35SXin Li static struct PyModuleDef SWIG_module = {
5507*b2055c35SXin Li # if PY_VERSION_HEX >= 0x03020000
5508*b2055c35SXin Li PyModuleDef_HEAD_INIT,
5509*b2055c35SXin Li # else
5510*b2055c35SXin Li {
5511*b2055c35SXin Li PyObject_HEAD_INIT(NULL)
5512*b2055c35SXin Li NULL, /* m_init */
5513*b2055c35SXin Li 0, /* m_index */
5514*b2055c35SXin Li NULL, /* m_copy */
5515*b2055c35SXin Li },
5516*b2055c35SXin Li # endif
5517*b2055c35SXin Li (char *) SWIG_name,
5518*b2055c35SXin Li NULL,
5519*b2055c35SXin Li -1,
5520*b2055c35SXin Li SwigMethods,
5521*b2055c35SXin Li NULL,
5522*b2055c35SXin Li NULL,
5523*b2055c35SXin Li NULL,
5524*b2055c35SXin Li NULL
5525*b2055c35SXin Li };
5526*b2055c35SXin Li #endif
5527*b2055c35SXin Li
5528*b2055c35SXin Li #if defined(SWIGPYTHON_BUILTIN)
5529*b2055c35SXin Li static SwigPyClientData SwigPyObject_clientdata = {
5530*b2055c35SXin Li 0, 0, 0, 0, 0, 0, 0
5531*b2055c35SXin Li };
5532*b2055c35SXin Li static PyGetSetDef this_getset_def = {
5533*b2055c35SXin Li (char *)"this", &SwigPyBuiltin_ThisClosure, NULL, NULL, NULL
5534*b2055c35SXin Li };
5535*b2055c35SXin Li static SwigPyGetSet thisown_getset_closure = {
5536*b2055c35SXin Li SwigPyObject_own,
5537*b2055c35SXin Li SwigPyObject_own
5538*b2055c35SXin Li };
5539*b2055c35SXin Li static PyGetSetDef thisown_getset_def = {
5540*b2055c35SXin Li (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure
5541*b2055c35SXin Li };
5542*b2055c35SXin Li PyTypeObject *builtin_pytype;
5543*b2055c35SXin Li int builtin_base_count;
5544*b2055c35SXin Li swig_type_info *builtin_basetype;
5545*b2055c35SXin Li PyObject *tuple;
5546*b2055c35SXin Li PyGetSetDescrObject *static_getset;
5547*b2055c35SXin Li PyTypeObject *metatype;
5548*b2055c35SXin Li PyTypeObject *swigpyobject;
5549*b2055c35SXin Li SwigPyClientData *cd;
5550*b2055c35SXin Li PyObject *public_interface, *public_symbol;
5551*b2055c35SXin Li PyObject *this_descr;
5552*b2055c35SXin Li PyObject *thisown_descr;
5553*b2055c35SXin Li PyObject *self = 0;
5554*b2055c35SXin Li int i;
5555*b2055c35SXin Li
5556*b2055c35SXin Li (void)builtin_pytype;
5557*b2055c35SXin Li (void)builtin_base_count;
5558*b2055c35SXin Li (void)builtin_basetype;
5559*b2055c35SXin Li (void)tuple;
5560*b2055c35SXin Li (void)static_getset;
5561*b2055c35SXin Li (void)self;
5562*b2055c35SXin Li
5563*b2055c35SXin Li /* Metaclass is used to implement static member variables */
5564*b2055c35SXin Li metatype = SwigPyObjectType();
5565*b2055c35SXin Li assert(metatype);
5566*b2055c35SXin Li #endif
5567*b2055c35SXin Li
5568*b2055c35SXin Li /* Fix SwigMethods to carry the callback ptrs when needed */
5569*b2055c35SXin Li SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial);
5570*b2055c35SXin Li
5571*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
5572*b2055c35SXin Li m = PyModule_Create(&SWIG_module);
5573*b2055c35SXin Li #else
5574*b2055c35SXin Li m = Py_InitModule((char *) SWIG_name, SwigMethods);
5575*b2055c35SXin Li #endif
5576*b2055c35SXin Li
5577*b2055c35SXin Li md = d = PyModule_GetDict(m);
5578*b2055c35SXin Li (void)md;
5579*b2055c35SXin Li
5580*b2055c35SXin Li SWIG_InitializeModule(0);
5581*b2055c35SXin Li
5582*b2055c35SXin Li #ifdef SWIGPYTHON_BUILTIN
5583*b2055c35SXin Li swigpyobject = SwigPyObject_TypeOnce();
5584*b2055c35SXin Li
5585*b2055c35SXin Li SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject");
5586*b2055c35SXin Li assert(SwigPyObject_stype);
5587*b2055c35SXin Li cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
5588*b2055c35SXin Li if (!cd) {
5589*b2055c35SXin Li SwigPyObject_stype->clientdata = &SwigPyObject_clientdata;
5590*b2055c35SXin Li SwigPyObject_clientdata.pytype = swigpyobject;
5591*b2055c35SXin Li } else if (swigpyobject->tp_basicsize != cd->pytype->tp_basicsize) {
5592*b2055c35SXin Li PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules.");
5593*b2055c35SXin Li # if PY_VERSION_HEX >= 0x03000000
5594*b2055c35SXin Li return NULL;
5595*b2055c35SXin Li # else
5596*b2055c35SXin Li return;
5597*b2055c35SXin Li # endif
5598*b2055c35SXin Li }
5599*b2055c35SXin Li
5600*b2055c35SXin Li /* All objects have a 'this' attribute */
5601*b2055c35SXin Li this_descr = PyDescr_NewGetSet(SwigPyObject_type(), &this_getset_def);
5602*b2055c35SXin Li (void)this_descr;
5603*b2055c35SXin Li
5604*b2055c35SXin Li /* All objects have a 'thisown' attribute */
5605*b2055c35SXin Li thisown_descr = PyDescr_NewGetSet(SwigPyObject_type(), &thisown_getset_def);
5606*b2055c35SXin Li (void)thisown_descr;
5607*b2055c35SXin Li
5608*b2055c35SXin Li public_interface = PyList_New(0);
5609*b2055c35SXin Li public_symbol = 0;
5610*b2055c35SXin Li (void)public_symbol;
5611*b2055c35SXin Li
5612*b2055c35SXin Li PyDict_SetItemString(md, "__all__", public_interface);
5613*b2055c35SXin Li Py_DECREF(public_interface);
5614*b2055c35SXin Li for (i = 0; SwigMethods[i].ml_name != NULL; ++i)
5615*b2055c35SXin Li SwigPyBuiltin_AddPublicSymbol(public_interface, SwigMethods[i].ml_name);
5616*b2055c35SXin Li for (i = 0; swig_const_table[i].name != 0; ++i)
5617*b2055c35SXin Li SwigPyBuiltin_AddPublicSymbol(public_interface, swig_const_table[i].name);
5618*b2055c35SXin Li #endif
5619*b2055c35SXin Li
5620*b2055c35SXin Li SWIG_InstallConstants(d,swig_const_table);
5621*b2055c35SXin Li
5622*b2055c35SXin Li #if PY_VERSION_HEX >= 0x03000000
5623*b2055c35SXin Li return m;
5624*b2055c35SXin Li #else
5625*b2055c35SXin Li return;
5626*b2055c35SXin Li #endif
5627*b2055c35SXin Li }
5628*b2055c35SXin Li
5629