LINUX.ORG.RU

Непонятная ошибка при закрытие приложения

 ,


0

1

Есть небольшое приложение которое открывает модальное окно QWizard, и при закрытие приложения возникает с вероятностью 50/50 вот это сообщение

ASSERT: "self" in file /var/tmp/portage/dev-python/pyside-1.1.1/work/pyside-qt4.8+1.1.1/libpyside/signalmanager.cpp, line 534
С чем это может быть связано?

★★★★★
Ответ на: комментарий от anonymous

Сейчас исходники распакую

deterok ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Функция выглядит вот так:

const QMetaObject* SignalManager::retriveMetaObject(PyObject *self)
{
    Shiboken::GilState gil;
    DynamicQMetaObject *mo = 0;
    Q_ASSERT(self);

    PyObject* dict = reinterpret_cast<SbkObject*>(self)->ob_dict;
    if (dict && PyDict_Contains(dict, metaObjectAttr)) {
        PyObject *pyMo = PyDict_GetItem(dict, metaObjectAttr);

#ifdef IS_PY3K
        mo = reinterpret_cast<DynamicQMetaObject*>(PyCapsule_GetPointer(pyMo, 0));
#else
        mo = reinterpret_cast<DynamicQMetaObject*>(PyCObject_AsVoidPtr(pyMo));
#endif
    } else {
        mo = reinterpret_cast<DynamicQMetaObject*>(Shiboken::Object::getTypeUserData(reinterpret_cast<SbkObject*>(self)));
    }

    mo->update();
    return mo;
}
Буду искать когда она вызывается.

deterok ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Я воспользовался

ebuild /usr/portage/dev-python/pyside/pyside-1.1.1.ebuild unpack

deterok ★★★★★
() автор топика
Ответ на: комментарий от deterok

self всегда будет не тру. Но оно будет nullptr (или NULL в терминологии C), если объект, которому должен быть послан сигнал, уже уничтожен, но ни дисконнекта, ни уничтожения посылающего объекта не было. Есть такая фича у Qt-шных указателей QPointer, возможно, указатели на PyObject внутри храняться как QPointer.

anonymous
()
Ответ на: комментарий от deterok

Не нужные QObject'ы убивать вызывая метод QObject::deleteLater(). Не забываем про, чилд/парент, QObject при уничтожении все ниже лежащее дерево за собой тащит.

erfea ★★★★★
()
Ответ на: комментарий от erfea

Да, вроде оно, пока проблем нет, ночью отпишусь после тестов.
Спасибо всем.

deterok ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.