LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

Та вот освобождаю разными методами, но все равно течет

освобождать надо методом описанным в доке

 Free with g_object_unref().

а не разными.

в цикле, что ты привел, никакого g_object_unref() нет, и тут создается 10 обьектов, все они присваиваются в один указатель, и потому остатается только адрес последнего. а 9 теряются.

или ты опять привел только «кусок»?

цикл должен выглядеть как-то так

for (int count = 0; count < 10; ++count) {
 GDBusMessage *call_message = g_dbus_message_new_method_call(
          "org.ayatana.bamf", "123456", "org.ayatana.bamf.view", "Parents");
...
//тут что то делаем с этим call_message
...
  g_object_unref(call_message); ///тут отпускаем call_message

}

Исходная версия alysnix, :

Та вот освобождаю разными методами, но все равно течет

освобождать надо методом описанным в доке

 Free with g_object_unref().

а не разными.

в цикле, что ты привел, никакого g_object_unref() нет, и тут создается 10 обьектов, все они присваиваются в один указатель, и потому остатается только адрес последнего. а 9 теряются.

или ты опять привел только «кусок»?