Fix view memory leaks

This commit is contained in:
Willy-JL
2024-03-07 05:26:40 +00:00
parent 43781d9332
commit d5e4af482f
2 changed files with 9 additions and 6 deletions

View File

@@ -187,12 +187,14 @@ static void* js_keyboard_create(struct mjs* mjs, mjs_val_t* object) {
} }
static void js_keyboard_destroy(void* inst) { static void js_keyboard_destroy(void* inst) {
JsKeyboardInst* insts = (JsKeyboardInst*)inst; JsKeyboardInst* keyboard = (JsKeyboardInst*)inst;
byte_input_free(insts->byte_input); view_dispatcher_remove_view(keyboard->view_dispatcher, JsKeyboardViewByteInput);
text_input_free(insts->text_input); byte_input_free(keyboard->byte_input);
view_dispatcher_free(insts->view_dispatcher); view_dispatcher_remove_view(keyboard->view_dispatcher, JsKeyboardViewTextInput);
free(insts->data); text_input_free(keyboard->text_input);
free(insts); view_dispatcher_free(keyboard->view_dispatcher);
free(keyboard->data);
free(keyboard);
} }
static const JsModuleDescriptor js_keyboard_desc = { static const JsModuleDescriptor js_keyboard_desc = {

View File

@@ -129,6 +129,7 @@ static void* js_submenu_create(struct mjs* mjs, mjs_val_t* object) {
static void js_submenu_destroy(void* inst) { static void js_submenu_destroy(void* inst) {
JsSubmenuInst* submenu = inst; JsSubmenuInst* submenu = inst;
view_dispatcher_remove_view(submenu->view_dispatcher, JsSubmenuViewSubmenu);
submenu_free(submenu->submenu); submenu_free(submenu->submenu);
view_dispatcher_free(submenu->view_dispatcher); view_dispatcher_free(submenu->view_dispatcher);
free(submenu); free(submenu);