From 638a720ab8712b020204f8cf4f38637ee1865491 Mon Sep 17 00:00:00 2001 From: Elias Bachaalany Date: Wed, 22 Jan 2025 05:55:46 -0800 Subject: [PATCH] fixing CI errors --- src/common/utils/function.hpp | 8 ++++++++ src/windows-emulator/syscall_dispatcher.cpp | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/common/utils/function.hpp b/src/common/utils/function.hpp index 46848597..dcc087b1 100644 --- a/src/common/utils/function.hpp +++ b/src/common/utils/function.hpp @@ -15,11 +15,18 @@ namespace utils public: optional_function() = default; + optional_function(std::function f) : func(std::move(f)) { } + template >> + optional_function(F&& f) + : func(std::forward(f)) + { + } + optional_function& operator=(std::function f) { func = std::move(f); @@ -40,6 +47,7 @@ namespace utils } } } + explicit operator bool() const noexcept { return static_cast(func); diff --git a/src/windows-emulator/syscall_dispatcher.cpp b/src/windows-emulator/syscall_dispatcher.cpp index 64fc3b39..1ed7581c 100644 --- a/src/windows-emulator/syscall_dispatcher.cpp +++ b/src/windows-emulator/syscall_dispatcher.cpp @@ -92,7 +92,7 @@ void syscall_dispatcher::dispatch(windows_emulator& win_emu) if (mod != context.ntdll && mod != context.win32u) { win_emu.callbacks().inline_syscall(syscall_id, address, mod ? mod->name.c_str() : "", - entry->second.name.c_str()); + entry->second.name.c_str()); win_emu.log.print(color::blue, "Executing inline syscall: %s (0x%X) at 0x%" PRIx64 " (%s)\n", entry->second.name.c_str(), syscall_id, address, mod ? mod->name.c_str() : ""); } @@ -112,8 +112,8 @@ void syscall_dispatcher::dispatch(windows_emulator& win_emu) { const auto* previous_mod = context.mod_manager.find_by_address(context.previous_ip); win_emu.callbacks().outofline_syscall(syscall_id, address, mod ? mod->name.c_str() : "", - entry->second.name.c_str(), context.previous_ip, - previous_mod ? previous_mod->name.c_str() : ""); + entry->second.name.c_str(), context.previous_ip, + previous_mod ? previous_mod->name.c_str() : ""); win_emu.log.print(color::blue, "Crafted out-of-line syscall: %s (0x%X) at 0x%" PRIx64 " (%s) via 0x%" PRIx64 " (%s)\n",