Cython has moved to github.
pyrex
view Tests/4/Reference/tryexcept.c @ 86:da6e97bb7e6d
Multiple compilation fixed
| author | Gregory Ewing <greg.ewing@canterbury.ac.nz> |
|---|---|
| date | Sat May 24 15:50:12 2008 +1200 (4 years ago) |
| parents | 39259a22b0e7 |
| children | 3b20cb4923eb |
line source
1 /* Generated by Pyrex */
3 #define PY_SSIZE_T_CLEAN
4 #include "Python.h"
5 #include "structmember.h"
6 #ifndef PY_LONG_LONG
7 #define PY_LONG_LONG LONG_LONG
8 #endif
9 #if PY_VERSION_HEX < 0x02050000
10 typedef int Py_ssize_t;
11 #define PY_SSIZE_T_MAX INT_MAX
12 #define PY_SSIZE_T_MIN INT_MIN
13 #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
14 #define PyInt_AsSsize_t(o) PyInt_AsLong(o)
15 #endif
16 #ifndef WIN32
17 #ifndef __stdcall
18 #define __stdcall
19 #endif
20 #ifndef __cdecl
21 #define __cdecl
22 #endif
23 #endif
24 #ifdef __cplusplus
25 #define __PYX_EXTERN_C extern "C"
26 #else
27 #define __PYX_EXTERN_C extern
28 #endif
29 #include <math.h>
32 typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/
33 typedef struct {PyObject **p; char *s; long n;} __Pyx_StringTabEntry; /*proto*/
35 static PyObject *__pyx_m;
36 static PyObject *__pyx_b;
37 static int __pyx_lineno;
38 static char *__pyx_filename;
39 static char **__pyx_f;
41 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
43 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
45 static int __Pyx_SetItemInt(PyObject *o, Py_ssize_t i, PyObject *v); /*proto*/
47 static void __Pyx_AddTraceback(char *funcname); /*proto*/
49 /* Declarations from tryexcept */
53 static __Pyx_StringTabEntry __pyx_string_tab[] = {
54 {0, 0, 0, 0}
55 };
57 /* Implementation of tryexcept */
59 static PyObject *__pyx_f_9tryexcept_f(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
60 static PyObject *__pyx_f_9tryexcept_f(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
61 PyObject *__pyx_v_a = 0;
62 PyObject *__pyx_v_b = 0;
63 PyObject *__pyx_v_c = 0;
64 PyObject *__pyx_v_x = 0;
65 int __pyx_v_i;
66 PyObject *__pyx_r;
67 PyObject *__pyx_1 = 0;
68 int __pyx_2;
69 PyObject *__pyx_3 = 0;
70 PyObject *__pyx_4 = 0;
71 PyObject *__pyx_5 = 0;
72 static char *__pyx_argnames[] = {"a","b","c","x",0};
73 if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOOO", __pyx_argnames, &__pyx_v_a, &__pyx_v_b, &__pyx_v_c, &__pyx_v_x)) return 0;
74 Py_INCREF(__pyx_v_a);
75 Py_INCREF(__pyx_v_b);
76 Py_INCREF(__pyx_v_c);
77 Py_INCREF(__pyx_v_x);
79 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":3 */
80 __pyx_1 = PyNumber_Add(__pyx_v_b, __pyx_v_c); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; goto __pyx_L1;}
81 Py_DECREF(__pyx_v_a);
82 __pyx_v_a = __pyx_1;
83 __pyx_1 = 0;
85 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":5 */
86 /*try:*/ {
88 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":6 */
89 __pyx_v_i = 1;
91 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":7 */
92 __Pyx_Raise(__pyx_v_x, 0, 0);
93 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; goto __pyx_L2;}
95 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":8 */
96 __pyx_v_i = 2;
97 }
98 goto __pyx_L3;
99 __pyx_L2:;
100 Py_XDECREF(__pyx_1); __pyx_1 = 0;
102 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":9 */
103 __pyx_2 = PyErr_ExceptionMatches(__pyx_v_a);
104 if (__pyx_2) {
105 __Pyx_AddTraceback("tryexcept.f");
106 if (__Pyx_GetException(&__pyx_1, &__pyx_3, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; goto __pyx_L1;}
107 __pyx_v_i = 3;
108 Py_DECREF(__pyx_1); __pyx_1 = 0;
109 Py_DECREF(__pyx_3); __pyx_3 = 0;
110 Py_DECREF(__pyx_4); __pyx_4 = 0;
111 goto __pyx_L3;
112 }
113 goto __pyx_L1;
114 __pyx_L3:;
116 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":12 */
117 /*try:*/ {
118 __pyx_v_i = 1;
119 }
120 goto __pyx_L5;
121 Py_XDECREF(__pyx_1); __pyx_1 = 0;
122 Py_XDECREF(__pyx_3); __pyx_3 = 0;
123 Py_XDECREF(__pyx_4); __pyx_4 = 0;
125 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":14 */
126 __pyx_2 = PyErr_ExceptionMatches(__pyx_v_a);
127 if (__pyx_2) {
128 __Pyx_AddTraceback("tryexcept.f");
129 if (__Pyx_GetException(&__pyx_1, &__pyx_3, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; goto __pyx_L1;}
130 __pyx_v_i = 2;
131 Py_DECREF(__pyx_1); __pyx_1 = 0;
132 Py_DECREF(__pyx_3); __pyx_3 = 0;
133 Py_DECREF(__pyx_4); __pyx_4 = 0;
134 goto __pyx_L5;
135 }
137 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":16 */
138 __pyx_2 = PyErr_ExceptionMatches(__pyx_v_b);
139 if (__pyx_2) {
140 __Pyx_AddTraceback("tryexcept.f");
141 if (__Pyx_GetException(&__pyx_1, &__pyx_3, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; goto __pyx_L1;}
142 __pyx_v_i = 3;
143 Py_DECREF(__pyx_1); __pyx_1 = 0;
144 Py_DECREF(__pyx_3); __pyx_3 = 0;
145 Py_DECREF(__pyx_4); __pyx_4 = 0;
146 goto __pyx_L5;
147 }
148 goto __pyx_L1;
149 __pyx_L5:;
151 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":19 */
152 /*try:*/ {
153 __pyx_v_i = 1;
154 }
155 goto __pyx_L7;
156 Py_XDECREF(__pyx_1); __pyx_1 = 0;
157 Py_XDECREF(__pyx_3); __pyx_3 = 0;
158 Py_XDECREF(__pyx_4); __pyx_4 = 0;
160 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":21 */
161 __pyx_2 = PyErr_ExceptionMatches(__pyx_v_a);
162 if (__pyx_2) {
163 __Pyx_AddTraceback("tryexcept.f");
164 if (__Pyx_GetException(&__pyx_1, &__pyx_3, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; goto __pyx_L1;}
165 Py_INCREF(__pyx_3);
166 Py_DECREF(__pyx_v_b);
167 __pyx_v_b = __pyx_3;
168 __pyx_v_i = 2;
169 Py_DECREF(__pyx_1); __pyx_1 = 0;
170 Py_DECREF(__pyx_3); __pyx_3 = 0;
171 Py_DECREF(__pyx_4); __pyx_4 = 0;
172 goto __pyx_L7;
173 }
174 goto __pyx_L1;
175 __pyx_L7:;
177 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":24 */
178 /*try:*/ {
179 __pyx_v_i = 1;
180 }
181 goto __pyx_L9;
182 Py_XDECREF(__pyx_1); __pyx_1 = 0;
183 Py_XDECREF(__pyx_3); __pyx_3 = 0;
184 Py_XDECREF(__pyx_4); __pyx_4 = 0;
186 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":26 */
187 __pyx_2 = PyErr_ExceptionMatches(__pyx_v_a);
188 if (__pyx_2) {
189 __Pyx_AddTraceback("tryexcept.f");
190 if (__Pyx_GetException(&__pyx_1, &__pyx_3, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; goto __pyx_L1;}
191 __pyx_v_i = 2;
192 Py_DECREF(__pyx_1); __pyx_1 = 0;
193 Py_DECREF(__pyx_3); __pyx_3 = 0;
194 Py_DECREF(__pyx_4); __pyx_4 = 0;
195 goto __pyx_L9;
196 }
198 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":28 */
199 /*except:*/ {
200 __Pyx_AddTraceback("tryexcept.f");
201 if (__Pyx_GetException(&__pyx_1, &__pyx_3, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; goto __pyx_L1;}
202 __pyx_v_i = 3;
203 Py_DECREF(__pyx_1); __pyx_1 = 0;
204 Py_DECREF(__pyx_3); __pyx_3 = 0;
205 Py_DECREF(__pyx_4); __pyx_4 = 0;
206 goto __pyx_L9;
207 }
208 __pyx_L9:;
210 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":31 */
211 /*try:*/ {
212 __pyx_v_i = 1;
213 }
214 goto __pyx_L11;
215 Py_XDECREF(__pyx_1); __pyx_1 = 0;
216 Py_XDECREF(__pyx_3); __pyx_3 = 0;
217 Py_XDECREF(__pyx_4); __pyx_4 = 0;
219 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":33 */
220 __pyx_1 = PyTuple_New(2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
221 Py_INCREF(__pyx_v_a);
222 PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_a);
223 Py_INCREF(__pyx_v_b);
224 PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_b);
225 __pyx_2 = PyErr_ExceptionMatches(__pyx_1);
226 Py_DECREF(__pyx_1); __pyx_1 = 0;
227 if (__pyx_2) {
228 __Pyx_AddTraceback("tryexcept.f");
229 if (__Pyx_GetException(&__pyx_3, &__pyx_4, &__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
230 if (__Pyx_SetItemInt(__pyx_v_c, 42, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
231 __pyx_v_i = 2;
232 Py_DECREF(__pyx_3); __pyx_3 = 0;
233 Py_DECREF(__pyx_4); __pyx_4 = 0;
234 Py_DECREF(__pyx_1); __pyx_1 = 0;
235 goto __pyx_L11;
236 }
237 goto __pyx_L1;
238 __pyx_L11:;
240 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":36 */
241 __pyx_3 = PyObject_GetIter(__pyx_v_b); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; goto __pyx_L1;}
242 for (;;) {
243 __pyx_4 = PyIter_Next(__pyx_3);
244 if (!__pyx_4) {
245 if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; goto __pyx_L1;}
246 break;
247 }
248 Py_DECREF(__pyx_v_a);
249 __pyx_v_a = __pyx_4;
250 __pyx_4 = 0;
251 /*try:*/ {
252 __pyx_1 = PyInt_FromLong(42); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L14;}
253 __pyx_4 = PyNumber_Multiply(__pyx_v_x, __pyx_1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L14;}
254 Py_DECREF(__pyx_1); __pyx_1 = 0;
255 Py_DECREF(__pyx_v_c);
256 __pyx_v_c = __pyx_4;
257 __pyx_4 = 0;
258 }
259 goto __pyx_L15;
260 __pyx_L14:;
261 Py_XDECREF(__pyx_1); __pyx_1 = 0;
262 Py_XDECREF(__pyx_4); __pyx_4 = 0;
264 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":39 */
265 /*except:*/ {
266 __Pyx_AddTraceback("tryexcept.f");
267 if (__Pyx_GetException(&__pyx_1, &__pyx_4, &__pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;}
268 __pyx_v_i = 17;
269 Py_DECREF(__pyx_1); __pyx_1 = 0;
270 Py_DECREF(__pyx_4); __pyx_4 = 0;
271 Py_DECREF(__pyx_5); __pyx_5 = 0;
272 goto __pyx_L15;
273 }
274 __pyx_L15:;
275 }
276 Py_DECREF(__pyx_3); __pyx_3 = 0;
278 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":42 */
279 /*try:*/ {
280 __pyx_v_i = 1;
281 }
282 goto __pyx_L17;
283 Py_XDECREF(__pyx_1); __pyx_1 = 0;
284 Py_XDECREF(__pyx_4); __pyx_4 = 0;
285 Py_XDECREF(__pyx_5); __pyx_5 = 0;
286 Py_XDECREF(__pyx_3); __pyx_3 = 0;
288 /* "/Local/Projects/D/Pyrex/Source/Tests/4/tryexcept.pyx":44 */
289 /*except:*/ {
290 __Pyx_AddTraceback("tryexcept.f");
291 if (__Pyx_GetException(&__pyx_1, &__pyx_4, &__pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; goto __pyx_L1;}
292 __Pyx_Raise(__pyx_1, __pyx_4, __pyx_5);
293 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; goto __pyx_L1;}
294 Py_DECREF(__pyx_1); __pyx_1 = 0;
295 Py_DECREF(__pyx_4); __pyx_4 = 0;
296 Py_DECREF(__pyx_5); __pyx_5 = 0;
297 goto __pyx_L17;
298 }
299 __pyx_L17:;
301 __pyx_r = Py_None; Py_INCREF(Py_None);
302 goto __pyx_L0;
303 __pyx_L1:;
304 Py_XDECREF(__pyx_1);
305 Py_XDECREF(__pyx_3);
306 Py_XDECREF(__pyx_4);
307 Py_XDECREF(__pyx_5);
308 __Pyx_AddTraceback("tryexcept.f");
309 __pyx_r = 0;
310 __pyx_L0:;
311 Py_DECREF(__pyx_v_a);
312 Py_DECREF(__pyx_v_b);
313 Py_DECREF(__pyx_v_c);
314 Py_DECREF(__pyx_v_x);
315 return __pyx_r;
316 }
318 static struct PyMethodDef __pyx_methods[] = {
319 {"f", (PyCFunction)__pyx_f_9tryexcept_f, METH_VARARGS|METH_KEYWORDS, 0},
320 {0, 0, 0, 0}
321 };
323 static void __pyx_init_filenames(void); /*proto*/
325 PyMODINIT_FUNC inittryexcept(void); /*proto*/
326 PyMODINIT_FUNC inittryexcept(void) {
327 __pyx_init_filenames();
328 __pyx_m = Py_InitModule4("tryexcept", __pyx_methods, 0, 0, PYTHON_API_VERSION);
329 if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
330 Py_INCREF(__pyx_m);
331 __pyx_b = PyImport_AddModule("__builtin__");
332 if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
333 if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
334 if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
335 return;
336 __pyx_L1:;
337 __Pyx_AddTraceback("tryexcept");
338 }
340 static char *__pyx_filenames[] = {
341 "tryexcept.pyx",
342 };
344 /* Runtime support code */
346 static void __pyx_init_filenames(void) {
347 __pyx_f = __pyx_filenames;
348 }
350 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
351 Py_XINCREF(type);
352 Py_XINCREF(value);
353 Py_XINCREF(tb);
354 /* First, check the traceback argument, replacing None with NULL. */
355 if (tb == Py_None) {
356 Py_DECREF(tb);
357 tb = 0;
358 }
359 else if (tb != NULL && !PyTraceBack_Check(tb)) {
360 PyErr_SetString(PyExc_TypeError,
361 "raise: arg 3 must be a traceback or None");
362 goto raise_error;
363 }
364 /* Next, replace a missing value with None */
365 if (value == NULL) {
366 value = Py_None;
367 Py_INCREF(value);
368 }
369 #if PY_VERSION_HEX < 0x02050000
370 if (!PyClass_Check(type))
371 #else
372 if (!PyType_Check(type))
373 #endif
374 {
375 /* Raising an instance. The value should be a dummy. */
376 if (value != Py_None) {
377 PyErr_SetString(PyExc_TypeError,
378 "instance exception may not have a separate value");
379 goto raise_error;
380 }
381 /* Normalize to raise <class>, <instance> */
382 Py_DECREF(value);
383 value = type;
384 #if PY_VERSION_HEX < 0x02050000
385 if (PyInstance_Check(type)) {
386 type = (PyObject*) ((PyInstanceObject*)type)->in_class;
387 Py_INCREF(type);
388 }
389 else {
390 PyErr_SetString(PyExc_TypeError,
391 "raise: exception must be an old-style class or instance");
392 goto raise_error;
393 }
394 #else
395 type = (PyObject*) type->ob_type;
396 Py_INCREF(type);
397 if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
398 PyErr_SetString(PyExc_TypeError,
399 "raise: exception class must be a subclass of BaseException");
400 goto raise_error;
401 }
402 #endif
403 }
404 PyErr_Restore(type, value, tb);
405 return;
406 raise_error:
407 Py_XDECREF(value);
408 Py_XDECREF(type);
409 Py_XDECREF(tb);
410 return;
411 }
413 static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
414 PyThreadState *tstate = PyThreadState_Get();
415 PyErr_Fetch(type, value, tb);
416 PyErr_NormalizeException(type, value, tb);
417 if (PyErr_Occurred())
418 goto bad;
419 Py_INCREF(*type);
420 Py_INCREF(*value);
421 Py_INCREF(*tb);
422 Py_XDECREF(tstate->exc_type);
423 Py_XDECREF(tstate->exc_value);
424 Py_XDECREF(tstate->exc_traceback);
425 tstate->exc_type = *type;
426 tstate->exc_value = *value;
427 tstate->exc_traceback = *tb;
428 return 0;
429 bad:
430 Py_XDECREF(*type);
431 Py_XDECREF(*value);
432 Py_XDECREF(*tb);
433 return -1;
434 }
436 static int __Pyx_SetItemInt(PyObject *o, Py_ssize_t i, PyObject *v) {
437 PyTypeObject *t = o->ob_type;
438 int r;
439 if (t->tp_as_sequence && t->tp_as_sequence->sq_item)
440 r = PySequence_SetItem(o, i, v);
441 else {
442 PyObject *j = PyInt_FromLong(i);
443 if (!j)
444 return -1;
445 r = PyObject_SetItem(o, j, v);
446 Py_DECREF(j);
447 }
448 return r;
449 }
451 #include "compile.h"
452 #include "frameobject.h"
453 #include "traceback.h"
455 static void __Pyx_AddTraceback(char *funcname) {
456 PyObject *py_srcfile = 0;
457 PyObject *py_funcname = 0;
458 PyObject *py_globals = 0;
459 PyObject *empty_tuple = 0;
460 PyObject *empty_string = 0;
461 PyCodeObject *py_code = 0;
462 PyFrameObject *py_frame = 0;
464 py_srcfile = PyString_FromString(__pyx_filename);
465 if (!py_srcfile) goto bad;
466 py_funcname = PyString_FromString(funcname);
467 if (!py_funcname) goto bad;
468 py_globals = PyModule_GetDict(__pyx_m);
469 if (!py_globals) goto bad;
470 empty_tuple = PyTuple_New(0);
471 if (!empty_tuple) goto bad;
472 empty_string = PyString_FromString("");
473 if (!empty_string) goto bad;
474 py_code = PyCode_New(
475 0, /*int argcount,*/
476 0, /*int nlocals,*/
477 0, /*int stacksize,*/
478 0, /*int flags,*/
479 empty_string, /*PyObject *code,*/
480 empty_tuple, /*PyObject *consts,*/
481 empty_tuple, /*PyObject *names,*/
482 empty_tuple, /*PyObject *varnames,*/
483 empty_tuple, /*PyObject *freevars,*/
484 empty_tuple, /*PyObject *cellvars,*/
485 py_srcfile, /*PyObject *filename,*/
486 py_funcname, /*PyObject *name,*/
487 __pyx_lineno, /*int firstlineno,*/
488 empty_string /*PyObject *lnotab*/
489 );
490 if (!py_code) goto bad;
491 py_frame = PyFrame_New(
492 PyThreadState_Get(), /*PyThreadState *tstate,*/
493 py_code, /*PyCodeObject *code,*/
494 py_globals, /*PyObject *globals,*/
495 0 /*PyObject *locals*/
496 );
497 if (!py_frame) goto bad;
498 py_frame->f_lineno = __pyx_lineno;
499 PyTraceBack_Here(py_frame);
500 bad:
501 Py_XDECREF(py_srcfile);
502 Py_XDECREF(py_funcname);
503 Py_XDECREF(empty_tuple);
504 Py_XDECREF(empty_string);
505 Py_XDECREF(py_code);
506 Py_XDECREF(py_frame);
507 }
