[Vala] Is IconView.get_selected_items () memory leak?



I have below vala code:

  public void on_iconview_selection_changed (IconView iconview)
    {   
      unowned List list = iconview.get_selected_items (); 
      if (list == null || list.length () == 0)
        return;

      var model = iconview.get_model (); 
      TreeIter iter;

      if (model.get_iter (out iter, (TreePath) list.data))
        {   
          PluginInfo plugin_info;

          model.get (iter, IconViewColumns.PLUGIN_INFO, out
plugin_info);
          activate_widget_page (plugin_info);
        }   
    }   

generate below C code:

void eshare_main_main_window_on_iconview_selection_changed (GtkIconView*
iconview, EShareMainMainWindow* self) {
        GList* list;
        gboolean _tmp0_ = FALSE;
        GtkTreeModel* model;
        GtkTreeIter iter = {0};
        g_return_if_fail (self != NULL);
        g_return_if_fail (iconview != NULL);
        list = gtk_icon_view_get_selected_items (iconview);
        if (list == NULL) {
                _tmp0_ = TRUE;
        } else {
                _tmp0_ = g_list_length (list) == 0;
        }   
        if (_tmp0_) {
                return;
        }   
        model = _g_object_ref0 (gtk_icon_view_get_model (iconview));
        if (gtk_tree_model_get_iter (model, &iter, (GtkTreePath*)
list->data)) {
                EShareMainPluginInfo* plugin_info;
                plugin_info = NULL;
                gtk_tree_model_get (model, &iter,
ESHARE_MAIN_MAIN_WINDOW_ICON_VIEW_COLUMNS_PLUGIN_INFO, &plugin_info,
-1);
                eshare_main_main_window_activate_widget_page (self,
plugin_info);
                _g_object_unref0 (plugin_info);
        }   
        _g_object_unref0 (model);
}

the gtk_icon_view_get_selected_items() document say the result must be
free as below:

g_list_foreach (list, gtk_tree_path_free, NULL);
g_list_free (list);


is this a memory leak? how to fix it?

thanks.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]