Services: remove deallocator for persistent services (#2692)
Co-authored-by: hedger <hedger@users.noreply.github.com>
This commit is contained in:
parent
711f0fef40
commit
3217f286f0
@ -313,58 +313,6 @@ Desktop* desktop_alloc() {
|
|||||||
return desktop;
|
return desktop;
|
||||||
}
|
}
|
||||||
|
|
||||||
void desktop_free(Desktop* desktop) {
|
|
||||||
furi_assert(desktop);
|
|
||||||
furi_check(furi_record_destroy(RECORD_DESKTOP));
|
|
||||||
|
|
||||||
furi_pubsub_unsubscribe(
|
|
||||||
loader_get_pubsub(desktop->loader), desktop->app_start_stop_subscription);
|
|
||||||
|
|
||||||
if(desktop->input_events_subscription) {
|
|
||||||
furi_pubsub_unsubscribe(desktop->input_events_pubsub, desktop->input_events_subscription);
|
|
||||||
desktop->input_events_subscription = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
desktop->loader = NULL;
|
|
||||||
desktop->input_events_pubsub = NULL;
|
|
||||||
furi_record_close(RECORD_LOADER);
|
|
||||||
furi_record_close(RECORD_NOTIFICATION);
|
|
||||||
furi_record_close(RECORD_INPUT_EVENTS);
|
|
||||||
|
|
||||||
view_dispatcher_remove_view(desktop->view_dispatcher, DesktopViewIdMain);
|
|
||||||
view_dispatcher_remove_view(desktop->view_dispatcher, DesktopViewIdLockMenu);
|
|
||||||
view_dispatcher_remove_view(desktop->view_dispatcher, DesktopViewIdLocked);
|
|
||||||
view_dispatcher_remove_view(desktop->view_dispatcher, DesktopViewIdDebug);
|
|
||||||
view_dispatcher_remove_view(desktop->view_dispatcher, DesktopViewIdHwMismatch);
|
|
||||||
view_dispatcher_remove_view(desktop->view_dispatcher, DesktopViewIdPinInput);
|
|
||||||
view_dispatcher_remove_view(desktop->view_dispatcher, DesktopViewIdPinTimeout);
|
|
||||||
|
|
||||||
view_dispatcher_free(desktop->view_dispatcher);
|
|
||||||
scene_manager_free(desktop->scene_manager);
|
|
||||||
|
|
||||||
animation_manager_free(desktop->animation_manager);
|
|
||||||
view_stack_free(desktop->main_view_stack);
|
|
||||||
desktop_main_free(desktop->main_view);
|
|
||||||
view_stack_free(desktop->locked_view_stack);
|
|
||||||
desktop_view_locked_free(desktop->locked_view);
|
|
||||||
desktop_lock_menu_free(desktop->lock_menu);
|
|
||||||
desktop_view_locked_free(desktop->locked_view);
|
|
||||||
desktop_debug_free(desktop->debug_view);
|
|
||||||
popup_free(desktop->hw_mismatch_popup);
|
|
||||||
desktop_view_pin_timeout_free(desktop->pin_timeout_view);
|
|
||||||
|
|
||||||
furi_record_close(RECORD_GUI);
|
|
||||||
desktop->gui = NULL;
|
|
||||||
|
|
||||||
furi_thread_free(desktop->scene_thread);
|
|
||||||
|
|
||||||
furi_record_close("menu");
|
|
||||||
|
|
||||||
furi_timer_free(desktop->auto_lock_timer);
|
|
||||||
|
|
||||||
free(desktop);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool desktop_check_file_flag(const char* flag_path) {
|
static bool desktop_check_file_flag(const char* flag_path) {
|
||||||
Storage* storage = furi_record_open(RECORD_STORAGE);
|
Storage* storage = furi_record_open(RECORD_STORAGE);
|
||||||
bool exists = storage_common_stat(storage, flag_path, NULL) == FSE_OK;
|
bool exists = storage_common_stat(storage, flag_path, NULL) == FSE_OK;
|
||||||
@ -427,7 +375,8 @@ int32_t desktop_srv(void* p) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
view_dispatcher_run(desktop->view_dispatcher);
|
view_dispatcher_run(desktop->view_dispatcher);
|
||||||
desktop_free(desktop);
|
|
||||||
|
furi_crash("That was unexpected");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -89,15 +89,6 @@ Dolphin* dolphin_alloc() {
|
|||||||
return dolphin;
|
return dolphin;
|
||||||
}
|
}
|
||||||
|
|
||||||
void dolphin_free(Dolphin* dolphin) {
|
|
||||||
furi_assert(dolphin);
|
|
||||||
|
|
||||||
dolphin_state_free(dolphin->state);
|
|
||||||
furi_message_queue_free(dolphin->event_queue);
|
|
||||||
|
|
||||||
free(dolphin);
|
|
||||||
}
|
|
||||||
|
|
||||||
void dolphin_event_send_async(Dolphin* dolphin, DolphinEvent* event) {
|
void dolphin_event_send_async(Dolphin* dolphin, DolphinEvent* event) {
|
||||||
furi_assert(dolphin);
|
furi_assert(dolphin);
|
||||||
furi_assert(event);
|
furi_assert(event);
|
||||||
@ -204,7 +195,7 @@ int32_t dolphin_srv(void* p) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dolphin_free(dolphin);
|
furi_crash("That was unexpected");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,8 +37,6 @@ struct Dolphin {
|
|||||||
|
|
||||||
Dolphin* dolphin_alloc();
|
Dolphin* dolphin_alloc();
|
||||||
|
|
||||||
void dolphin_free(Dolphin* dolphin);
|
|
||||||
|
|
||||||
void dolphin_event_send_async(Dolphin* dolphin, DolphinEvent* event);
|
void dolphin_event_send_async(Dolphin* dolphin, DolphinEvent* event);
|
||||||
|
|
||||||
void dolphin_event_send_wait(Dolphin* dolphin, DolphinEvent* event);
|
void dolphin_event_send_wait(Dolphin* dolphin, DolphinEvent* event);
|
||||||
|
|||||||
@ -85,30 +85,6 @@ Power* power_alloc() {
|
|||||||
return power;
|
return power;
|
||||||
}
|
}
|
||||||
|
|
||||||
void power_free(Power* power) {
|
|
||||||
furi_assert(power);
|
|
||||||
|
|
||||||
// Gui
|
|
||||||
view_dispatcher_remove_view(power->view_dispatcher, PowerViewOff);
|
|
||||||
power_off_free(power->power_off);
|
|
||||||
view_dispatcher_remove_view(power->view_dispatcher, PowerViewUnplugUsb);
|
|
||||||
power_unplug_usb_free(power->power_unplug_usb);
|
|
||||||
|
|
||||||
view_port_free(power->battery_view_port);
|
|
||||||
|
|
||||||
// State
|
|
||||||
furi_mutex_free(power->api_mtx);
|
|
||||||
|
|
||||||
// FuriPubSub
|
|
||||||
furi_pubsub_free(power->event_pubsub);
|
|
||||||
|
|
||||||
// Records
|
|
||||||
furi_record_close(RECORD_NOTIFICATION);
|
|
||||||
furi_record_close(RECORD_GUI);
|
|
||||||
|
|
||||||
free(power);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void power_check_charging_state(Power* power) {
|
static void power_check_charging_state(Power* power) {
|
||||||
if(furi_hal_power_is_charging()) {
|
if(furi_hal_power_is_charging()) {
|
||||||
if((power->info.charge == 100) || (furi_hal_power_is_charging_done())) {
|
if((power->info.charge == 100) || (furi_hal_power_is_charging_done())) {
|
||||||
@ -252,7 +228,7 @@ int32_t power_srv(void* p) {
|
|||||||
furi_delay_ms(1000);
|
furi_delay_ms(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
power_free(power);
|
furi_crash("That was unexpected");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user