Просмотр исходного кода

arm_dynarmic: Correct initializer list order

Amends the initializer list to be in the same order that each variable
would be initialized in. We also do this to ensure we don't use a bogus
uninitialized instance of the exclusive monitor within MakeJit()

We can also remove the jit member from the initializer list as this is
initialized by PageTableChanged()
Lioncash 8 лет назад
Родитель
Сommit
444a01afa6
1 измененных файлов с 3 добавлено и 5 удалено
  1. 3 5
      src/core/arm/dynarmic/arm_dynarmic.cpp

+ 3 - 5
src/core/arm/dynarmic/arm_dynarmic.cpp

@@ -139,14 +139,12 @@ void ARM_Dynarmic::Step() {
 }
 }
 
 
 ARM_Dynarmic::ARM_Dynarmic(std::shared_ptr<ExclusiveMonitor> exclusive_monitor, size_t core_index)
 ARM_Dynarmic::ARM_Dynarmic(std::shared_ptr<ExclusiveMonitor> exclusive_monitor, size_t core_index)
-    : cb(std::make_unique<ARM_Dynarmic_Callbacks>(*this)),
-      jit(MakeJit()), exclusive_monitor{std::dynamic_pointer_cast<DynarmicExclusiveMonitor>(
-                          exclusive_monitor)},
-      core_index{core_index} {
+    : cb(std::make_unique<ARM_Dynarmic_Callbacks>(*this)), core_index{core_index},
+      exclusive_monitor{std::dynamic_pointer_cast<DynarmicExclusiveMonitor>(exclusive_monitor)} {
     ARM_Interface::ThreadContext ctx;
     ARM_Interface::ThreadContext ctx;
     inner_unicorn.SaveContext(ctx);
     inner_unicorn.SaveContext(ctx);
-    LoadContext(ctx);
     PageTableChanged();
     PageTableChanged();
+    LoadContext(ctx);
 }
 }
 
 
 ARM_Dynarmic::~ARM_Dynarmic() = default;
 ARM_Dynarmic::~ARM_Dynarmic() = default;