LINUX.ORG.RU

gtkmm Gtk::TreeModel утечка памяти или чтото неправильно в коде?


0

0

Люди! Помогите разобратся и найти истину если ктото программировал изпользуя gtkmm. Проблема при работе с Gtk::TreeView. При добавлении и удалении сторчек из Gtk::TreeModel программа медленно но верно кушает всё больше памяти.

Задача простая: надо в списке держать заданое число последних сообщений (например 20). 1) добавляем сторку 2) смотрим количество. если > 20 удаляем самую старую ... и так несколько раз чтобы заметить рост используемой памяти Код который я описываю добавлен ниже. Написаная программа работает и визуально всё в полном порядке (отображаются последние 20 добавленых строчек). Если закоментировать содержимое процедуры, проблем с ростом памяти не наблюдается (следовательно засада наверно в этой процедуре).

Немогу понять где проблема, неправильно нписан код или утечка памяти в gtkmm (или gtk).

void CAppWindow::events_treeview_add() { // append row Gtk::TreeModel::Row row = *(m_ref_events_treeview_model->append());

row[m_events_treeview_columns.m_col_description] = "test"; //event_text;

if (m_ref_events_treeview_model->children().size() > 20) { // get first_row Gtk::TreeModel::iterator first_row = m_ref_events_treeview_model->children().begin(); if (first_row) m_ref_events_treeview_model->erase(first_row); } }

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

Я уже пытался но ничево много из той белиберды что выдаёт valgrind непонял. Кстати valgrind показывают такой-же безобразный результат на любую программу которую я ему для теста подсовывал (не важно моя она или одна из тех которые идут в дистре). :(

Тот факт что с памятю чтото не так я и без valgrind-а понимаю. Место которое влияет на утечку памяти я тоже нашол. Просто мне интересно это моя вина или Gtkm(Gtk). Если моя то что я неправильно делаю?

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

скорее всего гтк, знакомые заипались искать в нём утечки памяти.

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

> Я уже пытался но ничево много из той белиберды что выдаёт valgrind непонял.
> Кстати valgrind показывают такой-же безобразный результат на любую
> программу которую я ему для теста подсовывал
> (не важно моя она или одна из тех которые идут в дистре). :(

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

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