diff options
| author | 2019-11-26 21:48:56 -0500 | |
|---|---|---|
| committer | 2019-11-26 21:48:56 -0500 | |
| commit | ec0ce96c568b2b610c5218efd7faa5d9a19350f8 (patch) | |
| tree | 61b5133e3cc6a9edf3b45c5fe6604493689f6769 /src/core/tools | |
| parent | Merge pull request #3164 from ReinUsesLisp/half-cast-float (diff) | |
| download | yuzu-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.cpp | 2 | ||||
| -rw-r--r-- | src/core/tools/freezer.h | 3 |
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 | ||
| 56 | Freezer::Freezer(Core::Timing::CoreTiming& core_timing) : core_timing(core_timing) { | 56 | Freezer::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 | ||