summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/element.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/element.c b/src/element.c
index ebddc2e..32917db 100644
--- a/src/element.c
+++ b/src/element.c
@@ -201,12 +201,6 @@ void element_free(struct element *e)
struct attr *a, *an;
int i;
- if (e->e_group->g_current == e) {
- element_select_prev();
- if (e->e_group->g_current == e)
- e->e_group->g_current = NULL;
- }
-
list_for_each_entry_safe(c, cnext, &e->e_childs, e_list)
element_free(c);
@@ -221,6 +215,12 @@ void element_free(struct element *e)
list_for_each_entry_safe(a, an, &e->e_attrhash[i], a_list)
attr_free(a);
+ if (e->e_group->g_current == e) {
+ element_select_prev();
+ if (e->e_group->g_current == e)
+ e->e_group->g_current = NULL;
+ }
+
list_del(&e->e_list);
e->e_group->g_nelements--;