Welcome, Guest. Please login or register.
Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - DrGluck

Pages: 1 [2]
16
Сценарий прежний: создаётся класс, который создаёт экземпляр ReportEngine и модель. Модель может быть owned или нет, всё равно. Вызываем превью, закрываем, удаляем ReportEngine. После этого регулярно не очищается некоторое количество памяти. На тестовом отчёте в 200 страниц утекает по несколько мегабайт. После пары сотен таких действий получилась картинка (см. аттач).

[вложение удалено администратором]

17
Повторить ситуацию легко на отдельном маленьком приложении. По нажатию на кнопку создаём ReportEngine, модель и вызываем превью. По таймеру через пару секунд вызываем функцию, которая убивает ReportEngine.

18
7x64, Qt 4.8.6.
Ситуация с удалением во время показа отчёта получилась случайно. Сгенерировалось событие, закрывающее приложение, и Report Engine удалился и упал в процессе удаления.
Но это, опять-таки, ненормальная ситуация для класса, падать во время delete.

19
Создаём ReportEngine, передаём в него модель, вызываем previewReport. Если попытаться удалить ReportEngine, то приложение крашится. Проявляется в 1.2.1 и 1.3.9 (1.3.1 не пробовал), Qt 4.8.6.
На designReport не проявляется.

Возможно предполагается, что ReportEngine должен использоваться исключительно как синглтон. Но тогда нужен какой-либо признак, что сейчас есть открытый отчёт и функция "закрыть отчёт".

20
Файл: lrxmlbasetypesserializators.cpp

строка 180:
Code: [Select]
saveBool(_node,"undeline",font.underline());
строка 193:
Code: [Select]
font.setUnderline(node()->attribute("underline").toInt());
Есть во всех версиях.

p.s. Дружище, может лучше залить проект на какой-нибудь гитхаб? Там и баги репортить и отслеживать проще, да и мы бы уже давно всяких пуллреквестов накидали с исправлениями.

Pages: 1 [2]