From 7ee8fbc42dc068e1aa41491be50917b8d2538546 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sat, 16 May 2026 14:22:54 +1000 Subject: [PATCH] DiscordPresence: Use ResolveSymbols() --- src/core/discord_presence.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/core/discord_presence.cpp b/src/core/discord_presence.cpp index 0f60049e3..8d2cd7684 100644 --- a/src/core/discord_presence.cpp +++ b/src/core/discord_presence.cpp @@ -65,15 +65,17 @@ bool DiscordPresence::OpenDiscordRPC(Error* error) return false; } -#define LOAD_FUNC(F) \ - if (!s_locals.rpc_library.GetSymbol(#F, &s_locals.rpc_##F)) \ - { \ - Error::SetStringFmt(error, "Failed to find function {}", #F); \ - CloseDiscordRPC(); \ - return false; \ + static const DynamicLibrary::SymbolTable symbols[] = { +#define SYMBOL_ENTRY(F) {#F, reinterpret_cast(&s_locals.rpc_##F)}, + DISCORD_RPC_FUNCTIONS(SYMBOL_ENTRY) +#undef SYMBOL_ENTRY + }; + + if (!s_locals.rpc_library.ResolveSymbols(symbols, std::size(symbols), error)) + { + CloseDiscordRPC(); + return false; } - DISCORD_RPC_FUNCTIONS(LOAD_FUNC) -#undef LOAD_FUNC return true; }