2026-09-25 19:19:49

Signed-off-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
lizzie
2026-09-25 19:19:49 +00:00
parent cb33b94ee5
commit 548bc9ad92
2 changed files with 8 additions and 4 deletions
+6
View File
@@ -69,6 +69,9 @@ void ServiceFrameworkBase::ReportUnimplementedFunction(HLERequestContext& ctx, c
void ServiceFrameworkBase::InvokeRequest(HLERequestContext& ctx) {
const bool is_cmd_read = ctx.GetCommand() == 0;
auto const info = FindRequest(ctx.GetCommand());
if (info == nullptr || info->handler_callback == nullptr)
return ReportUnimplementedFunction(ctx, info);
LOG_TRACE(Service, "{}", MakeFunctionString(info->name, GetServiceName(), ctx.CommandBuffer()));
handler_invoker(this, info->handler_callback, ctx);
if (is_i_storage && is_cmd_read) {
@@ -81,6 +84,9 @@ void ServiceFrameworkBase::InvokeRequest(HLERequestContext& ctx) {
void ServiceFrameworkBase::InvokeRequestTipc(HLERequestContext& ctx) {
auto const info = FindRequestTipc(ctx.GetCommand());
if (info == nullptr || info->handler_callback == nullptr)
return ReportUnimplementedFunction(ctx, info);
LOG_TRACE(Service, "{}", MakeFunctionString(info->name, GetServiceName(), ctx.CommandBuffer()));
handler_invoker(this, info->handler_callback, ctx);
}
+2 -4
View File
@@ -180,14 +180,12 @@ protected:
FunctionInfoBase const* FindRequest(u32 key) override {
auto it = handlers.find(key);
FunctionInfoBase const* info = it == handlers.end() ? nullptr : &it->second;
return !(info == nullptr || info->handler_callback == nullptr) ? info : nullptr;
return it != handlers.end() ? std::addressof(it->second) : nullptr;
}
FunctionInfoBase const* FindRequestTipc(u32 key) override {
auto it = handlers_tipc.find(key);
FunctionInfoBase const* info = it == handlers_tipc.end() ? nullptr : &it->second;
return !(info == nullptr || info->handler_callback == nullptr) ? info : nullptr;
return it != handlers_tipc.end() ? std::addressof(it->second) : nullptr;
}
constexpr void RegisterHandlersBase(const FunctionInfoBase* functions, std::size_t n) {