mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-29 15:33:01 +00:00
Fix memory leak in djui panel
This commit is contained in:
parent
a23f04a2ea
commit
e86aa59a4d
1 changed files with 7 additions and 4 deletions
|
@ -42,7 +42,6 @@ struct DjuiPanel* djui_panel_add(struct DjuiBase* caller, struct DjuiThreePanel*
|
||||||
// calculate 3panel body height
|
// calculate 3panel body height
|
||||||
djui_three_panel_recalculate_body_size(threePanel);
|
djui_three_panel_recalculate_body_size(threePanel);
|
||||||
|
|
||||||
|
|
||||||
// allocate panel
|
// allocate panel
|
||||||
struct DjuiPanel* panel = calloc(1, sizeof(struct DjuiPanel));
|
struct DjuiPanel* panel = calloc(1, sizeof(struct DjuiPanel));
|
||||||
panel->parent = sPanelList;
|
panel->parent = sPanelList;
|
||||||
|
@ -149,17 +148,21 @@ void djui_panel_update(void) {
|
||||||
if (panel->on_panel_destroy) {
|
if (panel->on_panel_destroy) {
|
||||||
panel->on_panel_destroy(NULL);
|
panel->on_panel_destroy(NULL);
|
||||||
}
|
}
|
||||||
|
if (activeBase == removingBase) { activeBase = NULL; }
|
||||||
|
if (parentBase == removingBase) { parentBase = NULL; }
|
||||||
djui_base_destroy(removingBase);
|
djui_base_destroy(removingBase);
|
||||||
free(panel);
|
free(panel);
|
||||||
|
removingBase = NULL;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (removingBase != NULL) {
|
if (activeBase && removingBase) {
|
||||||
activeBase->y.value = moveMax - moveMax * smoothstep(0, moveMax, sMoveAmount);
|
activeBase->y.value = moveMax - moveMax * smoothstep(0, moveMax, sMoveAmount);
|
||||||
if (sPanelRemoving != NULL) {
|
if (sPanelRemoving) {
|
||||||
removingBase->y.value = activeBase->y.value - 1.0f;
|
removingBase->y.value = activeBase->y.value - 1.0f;
|
||||||
}
|
}
|
||||||
} else if (parentBase != NULL) {
|
} else if (activeBase && parentBase) {
|
||||||
activeBase->y.value = moveMax * smoothstep(0, moveMax, sMoveAmount) - moveMax;
|
activeBase->y.value = moveMax * smoothstep(0, moveMax, sMoveAmount) - moveMax;
|
||||||
parentBase->y.value = activeBase->y.value + moveMax;
|
parentBase->y.value = activeBase->y.value + moveMax;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue