libgnt/libgnt

Make gnt_tree_destroy multi-call safe.

2020-09-27, Elliott Sales de Andrade
d644d6c0aafa
Parents d390bf1e62e7
Children ffb6069167a2
Make gnt_tree_destroy multi-call safe.

It's not finalize, so there's no guarantee it won't be called multiple times.

Testing Done:
Ran Python example from ticket.

Bugs closed: LIBGNT-11

Reviewed at https://reviews.imfreedom.org/r/140/
  • +4 -5
    gnttree.c
  • --- a/gnttree.c Mon Sep 21 21:42:22 2020 -0500
    +++ b/gnttree.c Sun Sep 27 17:46:39 2020 -0500
    @@ -954,7 +954,8 @@
    for (i = 0; i < priv->ncol; i++) {
    g_free(priv->columns[i].title);
    }
    - g_free(priv->columns);
    + priv->ncol = 0;
    + g_clear_pointer(&priv->columns, g_free);
    }
    static void
    @@ -964,10 +965,8 @@
    GntTreePrivate *priv = gnt_tree_get_instance_private(tree);
    end_search(tree);
    - if (priv->hash) {
    - g_hash_table_destroy(priv->hash);
    - }
    - g_list_free(priv->list);
    + g_clear_pointer(&priv->hash, g_hash_table_destroy);
    + g_clear_pointer(&priv->list, g_list_free);
    gnt_tree_free_columns(priv);
    }