Guido van Rossum wrote: > I wouldn't be surprised if this is a genuine bug; the complex type > doesn't get a lot of love from core developers. > > Could you come up with a proposed fix, and a unit test showing that it > works (and that the old version doesn't)? (Maybe a good unit test > would require writing a custome C extension; in that case just show > some sample code.) Attached is a sample module that exposes the problem. The problem goes away by replacing op = PyType_GenericAlloc(type, 0); with op = type->tp_alloc(type, 0); in the function complex_subtype_from_c_complex in the file complexobject.c (about line #191). The problem with a unit test is that it might not fail. On my Linux system, it doesn't complain about the problem unless I first use strict pointer checking with export MALLOC_CHECK_=2 Then the code import bugtest a = bugtest.newcomplex(3.0) del a Aborts Valgrind also shows the error when running the simple code. It seems pretty clear to me that the subtype code should be calling the sub-types tp_alloc code instead of the generic one. Best regards, -Travis -------------- next part -------------- A non-text attachment was scrubbed... Name: bugtest.c Type: text/x-csrc Size: 1035 bytes Desc: not available Url : http://mail.python.org/pipermail/python-dev/attachments/20060531/db6f3342/attachment-0001.c
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