Форум сайта python.su
Ось такий код забирає в мене всю оперативку.
>>> from zope.i18nmessageid import Message
>>> while 1:
... m = Message(u'hello')
...
Офлайн
Офлайн
regallBug #257657 reported by Gary Poster on 2008-08-13. Дивно чого вони того не виправляють
https://bugs.launchpad.net/zope3/+bug/257657
Офлайн
crchemistВони взагалі над Zope 3.х мало працюють, всі сили на Zope2…, все-таки ком'юніті велике, багів багато, тому Zope2+Plone гарно підтримуються
Дивно чого вони того не виправляють
Офлайн
zope.i18nmessageid в плоні використовується
Офлайн
Еще есть tp_dealloc.
С него удаление начинается. tp_free удаляет память, не вызывая деструктора. Т.е. то, что было выделено через malloc - не удалится.
tp_free обычно указывает на PyObject_Free - аналог free, работающий с Питоновским memory pool.
tp_dealloc вызывает tp_free после того, как удалит все “внутренности”.
Как я вижу по исходникам, проблема таки в удалении.
Закомментирована проблемная строка, следующая - исправление.
static void
Message_dealloc(Message *self)
{
Message_clear(self);
/* self->base.ob_type->tp_free((PyObject*)self); */
PyUnicode_Type.tp_dealloc((PyObject*)self);
}
Офлайн