On Sun, Jul 09, 2000 at 11:17:44PM +0000, Peter Schneider-Kamp wrote: > While "slaving away" on the Modules/ directory (thanks for > the term - it made my day <wink>), I still haven't got a > clue why Python crashes on me when I throw an error on > duplicate arguments like in: > >>> def f(a, a): print a > segfault > Any help is again appreciated. Hm, strange. It works fine here. Do you get the segfault every time ? Anyway, a possible problem is that PyString_InternFromString might return NULL, and you later PyDict_GetItem() with it (not sure if that's a problem), and you pass it to com_newlocal_o (not sure if that's a problem either), and then you Py_DECREF it. And if you pass NULL to that macro you do have a problem :) You should use Py_XDECREF() if you aren't sure wether the object is NULL or not. If your python left a corefile, you can easily find out if that was the problem by using gdb on it. 'gdb ./python core', wait 'till it finishes loading, and type 'bt'. It should give you reversed (from a python point of view) backtrace from the time of the crash. > ! nameval = PyString_InternFromString(name); > ! if (nameval == NULL) { > ! c->c_errors++; > ! } > ! if (PyDict_GetItem(c->c_locals, nameval)) { > ! com_error(c, PyExc_SyntaxError,"double identifier in function definition"); > ! } > ! com_newlocal_o(c, nameval); > ! Py_DECREF(nameval); -- Thomas Wouters <thomas@xs4all.net> Hi! I'm a .signature virus! copy me into your .signature file to help me spread!
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4