summaryrefslogtreecommitdiff
path: root/src/core/tools
diff options
context:
space:
mode:
authorGravatar bunnei2019-11-26 21:48:56 -0500
committerGravatar GitHub2019-11-26 21:48:56 -0500
commitec0ce96c568b2b610c5218efd7faa5d9a19350f8 (patch)
tree61b5133e3cc6a9edf3b45c5fe6604493689f6769 /src/core/tools
parentMerge pull request #3164 from ReinUsesLisp/half-cast-float (diff)
downloadyuzu-ec0ce96c568b2b610c5218efd7faa5d9a19350f8.tar.gz
yuzu-ec0ce96c568b2b610c5218efd7faa5d9a19350f8.tar.xz
yuzu-ec0ce96c568b2b610c5218efd7faa5d9a19350f8.zip
core_timing: Use better reference tracking for EventType. (#3159)
* core_timing: Use better reference tracking for EventType. - Moves ownership of the event to the caller, ensuring we don't fire events for destroyed objects. - Removes need for unique names - we won't be using this for save states anyways.
Diffstat (limited to 'src/core/tools')
-rw-r--r--src/core/tools/freezer.cpp2
-rw-r--r--src/core/tools/freezer.h3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/core/tools/freezer.cpp b/src/core/tools/freezer.cpp
index 17f050068..19b531ecb 100644
--- a/src/core/tools/freezer.cpp
+++ b/src/core/tools/freezer.cpp
@@ -54,7 +54,7 @@ void MemoryWriteWidth(u32 width, VAddr addr, u64 value) {
54} // Anonymous namespace 54} // Anonymous namespace
55 55
56Freezer::Freezer(Core::Timing::CoreTiming& core_timing) : core_timing(core_timing) { 56Freezer::Freezer(Core::Timing::CoreTiming& core_timing) : core_timing(core_timing) {
57 event = core_timing.RegisterEvent( 57 event = Core::Timing::CreateEvent(
58 "MemoryFreezer::FrameCallback", 58 "MemoryFreezer::FrameCallback",
59 [this](u64 userdata, s64 cycles_late) { FrameCallback(userdata, cycles_late); }); 59 [this](u64 userdata, s64 cycles_late) { FrameCallback(userdata, cycles_late); });
60 core_timing.ScheduleEvent(MEMORY_FREEZER_TICKS, event); 60 core_timing.ScheduleEvent(MEMORY_FREEZER_TICKS, event);
diff --git a/src/core/tools/freezer.h b/src/core/tools/freezer.h
index b58de5472..90b1a885c 100644
--- a/src/core/tools/freezer.h
+++ b/src/core/tools/freezer.h
@@ -5,6 +5,7 @@
5#pragma once 5#pragma once
6 6
7#include <atomic> 7#include <atomic>
8#include <memory>
8#include <mutex> 9#include <mutex>
9#include <optional> 10#include <optional>
10#include <vector> 11#include <vector>
@@ -75,7 +76,7 @@ private:
75 mutable std::mutex entries_mutex; 76 mutable std::mutex entries_mutex;
76 std::vector<Entry> entries; 77 std::vector<Entry> entries;
77 78
78 Core::Timing::EventType* event; 79 std::shared_ptr<Core::Timing::EventType> event;
79 Core::Timing::CoreTiming& core_timing; 80 Core::Timing::CoreTiming& core_timing;
80}; 81};
81 82