Люди!
Помогите разобратся и найти истину если ктото программировал изпользуя 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);
}
}
gtkmm Gtk::TreeModel утечка памяти или чтото неправильно в коде?
Модератор: Модераторы разделов
-
Виктор
- Сообщения: 1