LINUX.ORG.RU

От чего может течь 4 мб?

 , ,


0

1

Код:

    public bool show_menu()
    {
        if (GLib.MainContext.current_source().is_destroyed()) return false;
        Gtk.Menu menuw = new Gtk.Menu.from_model(menu);
        MenuMaker.apply_menu_properties(menuw.get_children(),menu);
        menuw.attach_to_widget(this,null);
        menuw.popup(null,null,menu_position_func,
                    0, Gdk.CURRENT_TIME);
        menuw.focus_out_event.connect((event)=>{menuw.destroy();return false;});
        show_system_menu_idle = 0;
        return false;
    }

Течет где-то либо в этой функции, либо во внутренностях. Но факт тот, что после ее выполнение занятая память увеличивается на 4 мб. И не освобождается потом совсем.

★★

Последнее исправление: Athor (всего исправлений: 1)

занятая память увеличивается на 4 мб.

Ну да, ты создаешь меню, цепляешь его к виджету..

И не освобождается потом совсем.

Выдели один раз память на меню и всё. В чём проблема то?

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

Меню сразу уничтожается и не показывается. Память не съедается. Но тогда смысл в этой функции теряется весь:) Надо именно чтоб оно создалось, а при скрытии его всю память отдало.

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

Проблема в том, что меню жестко зависит от состояния виджета и имеющейся в наличии Model (а она имеет свойство меняться).

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

Хм..Тогда вангую, что вот это:

menuw.destroy() 
не вызывается при скрытии.

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

Поменял

-menuw.focus_out_event.connect((event)=>{menuw.destroy();return false;});
на
+menuw.hide.connect((event)=>{menuw.destroy()});

Вроде пофиксилось. И даже DnD не сломался.

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

Я как раз поставил:) А оно, в отличие от 2.x, не шлет на меню focus-out-event.

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

Первый раз вижу этот ЯП.

Да ладно тебе, это просто шарп компилируемый.

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