mirror of
https://gitlab.com/Theopse/fbi-i18n-zh.git
synced 2025-04-27 03:46:37 +08:00
Update submodule, add guards to cleaning up services.
This commit is contained in:
parent
319c10774a
commit
70fe88d04c
@ -1 +1 @@
|
|||||||
Subproject commit 4e6ed215ed961310609fb2b3ce6ebd2803a5e561
|
Subproject commit 2ef982ddbd9ae2d78052a42a2144fbc408bb30ea
|
@ -13,22 +13,57 @@
|
|||||||
#include "ui/ui.h"
|
#include "ui/ui.h"
|
||||||
#include "ui/section/task/task.h"
|
#include "ui/section/task/task.h"
|
||||||
|
|
||||||
|
static bool am_initialized = false;
|
||||||
|
static bool cfgu_initialized = false;
|
||||||
|
static bool ac_initialized = false;
|
||||||
|
static bool ptmu_initialized = false;
|
||||||
|
static bool pxidev_initialized = false;
|
||||||
|
static bool httpc_initialized = false;
|
||||||
|
static bool soc_initialized = false;
|
||||||
|
|
||||||
static void* soc_buffer = NULL;
|
static void* soc_buffer = NULL;
|
||||||
static u32 old_time_limit = UINT32_MAX;
|
static u32 old_time_limit = UINT32_MAX;
|
||||||
|
|
||||||
void cleanup_services() {
|
void cleanup_services() {
|
||||||
|
if(soc_initialized) {
|
||||||
socExit();
|
socExit();
|
||||||
if(soc_buffer != NULL) {
|
if(soc_buffer != NULL) {
|
||||||
free(soc_buffer);
|
free(soc_buffer);
|
||||||
soc_buffer = NULL;
|
soc_buffer = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
soc_initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(httpc_initialized) {
|
||||||
httpcExit();
|
httpcExit();
|
||||||
|
httpc_initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pxidev_initialized) {
|
||||||
pxiDevExit();
|
pxiDevExit();
|
||||||
|
pxidev_initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ptmu_initialized) {
|
||||||
ptmuExit();
|
ptmuExit();
|
||||||
|
ptmu_initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ac_initialized) {
|
||||||
acExit();
|
acExit();
|
||||||
|
ac_initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cfgu_initialized) {
|
||||||
cfguExit();
|
cfguExit();
|
||||||
|
cfgu_initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(am_initialized) {
|
||||||
amExit();
|
amExit();
|
||||||
|
am_initialized = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Result init_services() {
|
Result init_services() {
|
||||||
@ -38,15 +73,17 @@ Result init_services() {
|
|||||||
if(R_SUCCEEDED(res = srvGetServiceHandle(&tempAM, "am:net"))) {
|
if(R_SUCCEEDED(res = srvGetServiceHandle(&tempAM, "am:net"))) {
|
||||||
svcCloseHandle(tempAM);
|
svcCloseHandle(tempAM);
|
||||||
|
|
||||||
if(R_SUCCEEDED(res = amInit())
|
if(R_SUCCEEDED(res = amInit()) && (am_initialized = true)
|
||||||
&& R_SUCCEEDED(res = cfguInit())
|
&& R_SUCCEEDED(res = cfguInit()) && (cfgu_initialized = true)
|
||||||
&& R_SUCCEEDED(res = acInit())
|
&& R_SUCCEEDED(res = acInit()) && (ac_initialized = true)
|
||||||
&& R_SUCCEEDED(res = ptmuInit())
|
&& R_SUCCEEDED(res = ptmuInit()) && (ptmu_initialized = true)
|
||||||
&& R_SUCCEEDED(res = pxiDevInit())
|
&& R_SUCCEEDED(res = pxiDevInit()) && (pxidev_initialized = true)
|
||||||
&& R_SUCCEEDED(res = httpcInit(0))) {
|
&& R_SUCCEEDED(res = httpcInit(0)) && (httpc_initialized = true)) {
|
||||||
soc_buffer = memalign(0x1000, 0x100000);
|
soc_buffer = memalign(0x1000, 0x100000);
|
||||||
if(soc_buffer != NULL) {
|
if(soc_buffer != NULL) {
|
||||||
res = socInit(soc_buffer, 0x100000);
|
if(R_SUCCEEDED(res = socInit(soc_buffer, 0x100000))) {
|
||||||
|
soc_initialized = true;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
res = R_FBI_OUT_OF_MEMORY;
|
res = R_FBI_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user