Название: Qt 4.1 - утечка памяти в QToolBar ? Отправлено: ElderOrb от Январь 06, 2006, 11:15 Если написать следующий кусок кода
Код:
... запустить, и смотреть в это время на task manager - можно увидеть как огромными шматками утекает память.. Может эт я чего не правильно делаю? p.s. С менюшками такого не наблюдается.. Название: Qt 4.1 - утечка памяти в QToolBar ? Отправлено: Racheengel от Январь 10, 2006, 11:04 а шо за fileToolBar?
Название: Qt 4.1 - утечка памяти в QToolBar ? Отправлено: zlatko от Январь 10, 2006, 13:05 наверно дело в цыкле
Название: Qt 4.1 - утечка памяти в QToolBar ? Отправлено: Racheengel от Январь 10, 2006, 13:08 а кутя какая?
Название: Qt 4.1 - утечка памяти в QToolBar ? Отправлено: ElderOrb от Январь 10, 2006, 13:14 2zlatko: Дело в утечке. Цикл я сделал только чтобы это было очевидно в таск манагере.
2Racheengel: Qt 4.1.0 Название: Qt 4.1 - утечка памяти в QToolBar ? Отправлено: Steven_Orko от Январь 10, 2006, 17:12 В Qt написано:
void QToolBar::clear () Removes all actions from the toolbar. See also removeAction(). Насколько я понимаю, дело не в утечке, а в том, что становится дофига сеператоров. Separator - это не Action Название: Qt 4.1 - утечка памяти в QToolBar ? Отправлено: SLiDER от Январь 10, 2006, 17:52 Цитата: "Steven_Orko" Separator - это не Action Именно так. 8) Название: Qt 4.1 - утечка памяти в QToolBar ? Отправлено: Anchorite от Январь 10, 2006, 21:43 А вот и не так. Смотрим файл src\gui\widgets\qtoolbar.cpp и видим:
Код:
Название: Qt 4.1 - утечка памяти в QToolBar ? Отправлено: SLiDER от Январь 10, 2006, 22:59 Цитата: "Anchorite" А вот и не так. Смотрим файл src\gui\widgets\qtoolbar.cpp и видим: Код:
Гммммм. А ведь действительно. :? Непонятно. :roll: Тогда почему следующий код из того же файла, не выполняет своих бязяностей (по свидетельству господина ElderOrb, сам не проверял еще) Код: void QToolBar::clear() Похоже нужно подебажить, но это уже завтра на работе. А сейчас пошол ка я спать, утро вечера мудреннее. Название: Qt 4.1 - утечка памяти в QToolBar ? Отправлено: Steven_Orko от Январь 10, 2006, 23:13 Ну, в общем-то он выполняет, только как -то по особенному. Количество элементов в списке становится ноль. Я сначала думал, что это проблемма в QList, но он нормально работает. Скорее всего, где-то неверно предается та область памяти, что занял QList, т.е. она просто копируется, вместо того, чтобы передаваться по ссылки на нее. Удаляются элементы в новом списке, а потом указатель на старую память теряется и место занимает новый. Я немного подебажил код и вот это получилось. Будет время еще посмотрю. Но это действительно баг Qt, похоже...
|