Message253749
| Author |
serhiy.storchaka |
| Recipients |
JakeMont, jnoller, martin.panter, r.david.murray, sbt, serhiy.storchaka, skrah, zach.ware |
| Date |
2015年10月30日.17:39:58 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1446226799.25.0.257074326061.issue25498@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Before committing any solution we first should have understood the cause of the crash. The peculiarity of example ctypes_crash.py is that the argument of ctypes.c_char.from_buffer is a memoryview. With current code we have following chain (the list creates a reference loop with itself):
list->memoryview->ManagedBuffer->memoryview->ManagedBuffer->bytearray
Using PyMemoryView_FromObject or hypothetical PyMemoryView_FromObjectEx we could get shorter chain:
list->memoryview->ManagedBuffer->bytearray
May be the cause not in current hack, but in memoryview that can't survive with breaking long chain? Or may be we just are lucky in latter case?
I share Martin's doubts about writability in Eryksun’s patch. |
|