diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/arm/unicorn/arm_unicorn.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/core/arm/unicorn/arm_unicorn.cpp b/src/core/arm/unicorn/arm_unicorn.cpp index 92aef0654..1d15152e5 100644 --- a/src/core/arm/unicorn/arm_unicorn.cpp +++ b/src/core/arm/unicorn/arm_unicorn.cpp | |||
| @@ -10,6 +10,22 @@ | |||
| 10 | #include "core/core_timing.h" | 10 | #include "core/core_timing.h" |
| 11 | #include "core/hle/kernel/svc.h" | 11 | #include "core/hle/kernel/svc.h" |
| 12 | 12 | ||
| 13 | // Load Unicorn DLL once on Windows using RAII | ||
| 14 | #ifdef _WIN32 | ||
| 15 | #include <unicorn_dynload.h> | ||
| 16 | struct LoadDll { | ||
| 17 | private: | ||
| 18 | LoadDll() { | ||
| 19 | ASSERT(uc_dyn_load(NULL, 0)); | ||
| 20 | } | ||
| 21 | ~LoadDll() { | ||
| 22 | ASSERT(uc_dyn_free()); | ||
| 23 | } | ||
| 24 | static LoadDll g_load_dll; | ||
| 25 | }; | ||
| 26 | LoadDll LoadDll::g_load_dll; | ||
| 27 | #endif | ||
| 28 | |||
| 13 | #define CHECKED(expr) \ | 29 | #define CHECKED(expr) \ |
| 14 | do { \ | 30 | do { \ |
| 15 | if (auto _cerr = (expr)) { \ | 31 | if (auto _cerr = (expr)) { \ |