Skip to content

Commit b57b58d

Browse files
committed
add special case when unloading core addon
to suppress log error & process error result better
1 parent 5491e86 commit b57b58d

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

loader_core/gw2al_api_addon_registry.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ id_storage<unsigned short, gw2al_addon*> addonStorage(0xFFFF);
55

66
gw2al_addon coreAddon;
77
gw2al_addon_dsc coreAddonDsc;
8+
gw2al_hashed_name coreAddonName;
89

910
gw2al_core_vtable api_vtable;
1011

1112
gw2al_api_ret gw2al_core__inner_addon_unload(int gameExiting)
1213
{
13-
return GW2AL_FAIL;
14+
return GW2AL_OK;
1415
}
1516

1617
void gw2al_core__init_addon_registry()
@@ -45,8 +46,9 @@ void gw2al_core__init_addon_registry()
4546
coreAddon.addonLib = 0;
4647
coreAddon.desc = &coreAddonDsc;
4748
coreAddon.unload = &gw2al_core__inner_addon_unload;
48-
49-
addonStorage.register_obj(&coreAddon, gw2al_core__hash_name((wchar_t*)coreAddonDsc.name));
49+
coreAddonName = gw2al_core__hash_name((wchar_t*)coreAddonDsc.name);
50+
51+
addonStorage.register_obj(&coreAddon, coreAddonName);
5052
}
5153

5254
gw2al_api_ret gw2al_core__unload_addon(gw2al_hashed_name name)
@@ -96,6 +98,10 @@ gw2al_api_ret gw2al_core__unload_addon(gw2al_hashed_name name)
9698

9799
if (ret == GW2AL_OK)
98100
{
101+
//special case for core addon as we can't unload it here
102+
if (name == coreAddonName)
103+
return ret;
104+
99105
addonStorage.unregister_obj(name);
100106

101107
FreeLibrary(addon->addonLib);

loader_core/loader_core.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ void loader_core::SignalUnload()
149149
{
150150
LOG_INFO(L"core", L"Unloading core addon");
151151

152-
if (gw2al_core__unload_addon(gw2al_core__hash_name((wchar_t*)L"loader_core")) == GW2AL_DEP_STILL_LOADED)
152+
if (gw2al_core__unload_addon(gw2al_core__hash_name((wchar_t*)L"loader_core")) != GW2AL_OK)
153153
{
154154
LOG_ERROR(L"core", L"Some addons are not unloaded!");
155155
}

0 commit comments

Comments
 (0)