diff options
| author | 2015-01-31 22:56:59 -0200 | |
|---|---|---|
| committer | 2015-02-02 15:37:07 -0200 | |
| commit | 7725256f649719dcce2c50ea84e79d6199dd9a50 (patch) | |
| tree | d9266b5991cc7c6a2c9c6bc55f39dd9c71897d59 /src | |
| parent | Update boost external (diff) | |
| download | yuzu-7725256f649719dcce2c50ea84e79d6199dd9a50.tar.gz yuzu-7725256f649719dcce2c50ea84e79d6199dd9a50.tar.xz yuzu-7725256f649719dcce2c50ea84e79d6199dd9a50.zip | |
Explicitly instantiate constructors/destructors for Kernel objects
This should speed up compile times a bit, as well as enable more liberal
use of forward declarations. (Due to SharedPtr not trying to emit the
destructor anymore.)
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/core/hle/kernel/address_arbiter.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/address_arbiter.h | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/event.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/event.h | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/mutex.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/mutex.h | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/semaphore.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/semaphore.h | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/session.cpp | 13 | ||||
| -rw-r--r-- | src/core/hle/kernel/session.h | 4 | ||||
| -rw-r--r-- | src/core/hle/kernel/shared_memory.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/shared_memory.h | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/thread.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/kernel/thread.h | 1 | ||||
| -rw-r--r-- | src/core/hle/kernel/timer.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/timer.h | 3 |
17 files changed, 51 insertions, 8 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index ac173c486..0ab0e440c 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -26,6 +26,7 @@ set(SRCS | |||
| 26 | hle/kernel/kernel.cpp | 26 | hle/kernel/kernel.cpp |
| 27 | hle/kernel/mutex.cpp | 27 | hle/kernel/mutex.cpp |
| 28 | hle/kernel/semaphore.cpp | 28 | hle/kernel/semaphore.cpp |
| 29 | hle/kernel/session.cpp | ||
| 29 | hle/kernel/shared_memory.cpp | 30 | hle/kernel/shared_memory.cpp |
| 30 | hle/kernel/timer.cpp | 31 | hle/kernel/timer.cpp |
| 31 | hle/kernel/thread.cpp | 32 | hle/kernel/thread.cpp |
diff --git a/src/core/hle/kernel/address_arbiter.cpp b/src/core/hle/kernel/address_arbiter.cpp index 6e8f959f3..2084f24cc 100644 --- a/src/core/hle/kernel/address_arbiter.cpp +++ b/src/core/hle/kernel/address_arbiter.cpp | |||
| @@ -15,6 +15,9 @@ | |||
| 15 | 15 | ||
| 16 | namespace Kernel { | 16 | namespace Kernel { |
| 17 | 17 | ||
| 18 | AddressArbiter::AddressArbiter() {} | ||
| 19 | AddressArbiter::~AddressArbiter() {} | ||
| 20 | |||
| 18 | ResultVal<SharedPtr<AddressArbiter>> AddressArbiter::Create(std::string name) { | 21 | ResultVal<SharedPtr<AddressArbiter>> AddressArbiter::Create(std::string name) { |
| 19 | SharedPtr<AddressArbiter> address_arbiter(new AddressArbiter); | 22 | SharedPtr<AddressArbiter> address_arbiter(new AddressArbiter); |
| 20 | // TOOD(yuriks): Don't create Handle (see Thread::Create()) | 23 | // TOOD(yuriks): Don't create Handle (see Thread::Create()) |
diff --git a/src/core/hle/kernel/address_arbiter.h b/src/core/hle/kernel/address_arbiter.h index 638afff9e..a616d840f 100644 --- a/src/core/hle/kernel/address_arbiter.h +++ b/src/core/hle/kernel/address_arbiter.h | |||
| @@ -47,7 +47,8 @@ public: | |||
| 47 | ResultCode ArbitrateAddress(ArbitrationType type, VAddr address, s32 value, u64 nanoseconds); | 47 | ResultCode ArbitrateAddress(ArbitrationType type, VAddr address, s32 value, u64 nanoseconds); |
| 48 | 48 | ||
| 49 | private: | 49 | private: |
| 50 | AddressArbiter() = default; | 50 | AddressArbiter(); |
| 51 | ~AddressArbiter() override; | ||
| 51 | }; | 52 | }; |
| 52 | 53 | ||
| 53 | } // namespace FileSys | 54 | } // namespace FileSys |
diff --git a/src/core/hle/kernel/event.cpp b/src/core/hle/kernel/event.cpp index d9ad40c6a..3796fbb74 100644 --- a/src/core/hle/kernel/event.cpp +++ b/src/core/hle/kernel/event.cpp | |||
| @@ -14,6 +14,9 @@ | |||
| 14 | 14 | ||
| 15 | namespace Kernel { | 15 | namespace Kernel { |
| 16 | 16 | ||
| 17 | Event::Event() {} | ||
| 18 | Event::~Event() {} | ||
| 19 | |||
| 17 | ResultVal<SharedPtr<Event>> Event::Create(ResetType reset_type, std::string name) { | 20 | ResultVal<SharedPtr<Event>> Event::Create(ResetType reset_type, std::string name) { |
| 18 | SharedPtr<Event> evt(new Event); | 21 | SharedPtr<Event> evt(new Event); |
| 19 | // TOOD(yuriks): Don't create Handle (see Thread::Create()) | 22 | // TOOD(yuriks): Don't create Handle (see Thread::Create()) |
diff --git a/src/core/hle/kernel/event.h b/src/core/hle/kernel/event.h index 2c3e6b14e..6f88afb3e 100644 --- a/src/core/hle/kernel/event.h +++ b/src/core/hle/kernel/event.h | |||
| @@ -39,7 +39,8 @@ public: | |||
| 39 | void Clear(); | 39 | void Clear(); |
| 40 | 40 | ||
| 41 | private: | 41 | private: |
| 42 | Event() = default; | 42 | Event(); |
| 43 | ~Event() override; | ||
| 43 | }; | 44 | }; |
| 44 | 45 | ||
| 45 | } // namespace | 46 | } // namespace |
diff --git a/src/core/hle/kernel/mutex.cpp b/src/core/hle/kernel/mutex.cpp index 6fdcc97ee..c6ad5ca91 100644 --- a/src/core/hle/kernel/mutex.cpp +++ b/src/core/hle/kernel/mutex.cpp | |||
| @@ -38,6 +38,9 @@ void ReleaseThreadMutexes(Thread* thread) { | |||
| 38 | thread->held_mutexes.clear(); | 38 | thread->held_mutexes.clear(); |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | Mutex::Mutex() {} | ||
| 42 | Mutex::~Mutex() {} | ||
| 43 | |||
| 41 | ResultVal<SharedPtr<Mutex>> Mutex::Create(bool initial_locked, std::string name) { | 44 | ResultVal<SharedPtr<Mutex>> Mutex::Create(bool initial_locked, std::string name) { |
| 42 | SharedPtr<Mutex> mutex(new Mutex); | 45 | SharedPtr<Mutex> mutex(new Mutex); |
| 43 | // TOOD(yuriks): Don't create Handle (see Thread::Create()) | 46 | // TOOD(yuriks): Don't create Handle (see Thread::Create()) |
diff --git a/src/core/hle/kernel/mutex.h b/src/core/hle/kernel/mutex.h index 1e69528f1..21fd26e56 100644 --- a/src/core/hle/kernel/mutex.h +++ b/src/core/hle/kernel/mutex.h | |||
| @@ -47,7 +47,8 @@ public: | |||
| 47 | void Release(); | 47 | void Release(); |
| 48 | 48 | ||
| 49 | private: | 49 | private: |
| 50 | Mutex() = default; | 50 | Mutex(); |
| 51 | ~Mutex() override; | ||
| 51 | }; | 52 | }; |
| 52 | 53 | ||
| 53 | /** | 54 | /** |
diff --git a/src/core/hle/kernel/semaphore.cpp b/src/core/hle/kernel/semaphore.cpp index a9e406ef4..234d60d85 100644 --- a/src/core/hle/kernel/semaphore.cpp +++ b/src/core/hle/kernel/semaphore.cpp | |||
| @@ -10,6 +10,9 @@ | |||
| 10 | 10 | ||
| 11 | namespace Kernel { | 11 | namespace Kernel { |
| 12 | 12 | ||
| 13 | Semaphore::Semaphore() {} | ||
| 14 | Semaphore::~Semaphore() {} | ||
| 15 | |||
| 13 | ResultVal<SharedPtr<Semaphore>> Semaphore::Create(s32 initial_count, s32 max_count, | 16 | ResultVal<SharedPtr<Semaphore>> Semaphore::Create(s32 initial_count, s32 max_count, |
| 14 | std::string name) { | 17 | std::string name) { |
| 15 | 18 | ||
diff --git a/src/core/hle/kernel/semaphore.h b/src/core/hle/kernel/semaphore.h index 9bb404ab6..d8dc1fd78 100644 --- a/src/core/hle/kernel/semaphore.h +++ b/src/core/hle/kernel/semaphore.h | |||
| @@ -47,7 +47,8 @@ public: | |||
| 47 | ResultVal<s32> Release(s32 release_count); | 47 | ResultVal<s32> Release(s32 release_count); |
| 48 | 48 | ||
| 49 | private: | 49 | private: |
| 50 | Semaphore() = default; | 50 | Semaphore(); |
| 51 | ~Semaphore() override; | ||
| 51 | }; | 52 | }; |
| 52 | 53 | ||
| 53 | } // namespace | 54 | } // namespace |
diff --git a/src/core/hle/kernel/session.cpp b/src/core/hle/kernel/session.cpp new file mode 100644 index 000000000..0594967f8 --- /dev/null +++ b/src/core/hle/kernel/session.cpp | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | // Copyright 2015 Citra Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "core/hle/kernel/session.h" | ||
| 6 | #include "core/hle/kernel/thread.h" | ||
| 7 | |||
| 8 | namespace Kernel { | ||
| 9 | |||
| 10 | Session::Session() {} | ||
| 11 | Session::~Session() {} | ||
| 12 | |||
| 13 | } | ||
diff --git a/src/core/hle/kernel/session.h b/src/core/hle/kernel/session.h index 1788e4375..7cc9332c9 100644 --- a/src/core/hle/kernel/session.h +++ b/src/core/hle/kernel/session.h | |||
| @@ -5,6 +5,7 @@ | |||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "core/hle/kernel/kernel.h" | 7 | #include "core/hle/kernel/kernel.h" |
| 8 | #include "core/mem_map.h" | ||
| 8 | 9 | ||
| 9 | namespace Kernel { | 10 | namespace Kernel { |
| 10 | 11 | ||
| @@ -43,6 +44,9 @@ inline static u32* GetCommandBuffer(const int offset=0) { | |||
| 43 | */ | 44 | */ |
| 44 | class Session : public WaitObject { | 45 | class Session : public WaitObject { |
| 45 | public: | 46 | public: |
| 47 | Session(); | ||
| 48 | ~Session() override; | ||
| 49 | |||
| 46 | std::string GetTypeName() const override { return "Session"; } | 50 | std::string GetTypeName() const override { return "Session"; } |
| 47 | 51 | ||
| 48 | static const HandleType HANDLE_TYPE = HandleType::Session; | 52 | static const HandleType HANDLE_TYPE = HandleType::Session; |
diff --git a/src/core/hle/kernel/shared_memory.cpp b/src/core/hle/kernel/shared_memory.cpp index b586c9903..c429bb9b4 100644 --- a/src/core/hle/kernel/shared_memory.cpp +++ b/src/core/hle/kernel/shared_memory.cpp | |||
| @@ -9,6 +9,9 @@ | |||
| 9 | 9 | ||
| 10 | namespace Kernel { | 10 | namespace Kernel { |
| 11 | 11 | ||
| 12 | SharedMemory::SharedMemory() {} | ||
| 13 | SharedMemory::~SharedMemory() {} | ||
| 14 | |||
| 12 | ResultVal<SharedPtr<SharedMemory>> SharedMemory::Create(std::string name) { | 15 | ResultVal<SharedPtr<SharedMemory>> SharedMemory::Create(std::string name) { |
| 13 | SharedPtr<SharedMemory> shared_memory(new SharedMemory); | 16 | SharedPtr<SharedMemory> shared_memory(new SharedMemory); |
| 14 | 17 | ||
diff --git a/src/core/hle/kernel/shared_memory.h b/src/core/hle/kernel/shared_memory.h index d393e8175..d9e741d20 100644 --- a/src/core/hle/kernel/shared_memory.h +++ b/src/core/hle/kernel/shared_memory.h | |||
| @@ -57,7 +57,8 @@ public: | |||
| 57 | std::string name; ///< Name of shared memory object (optional) | 57 | std::string name; ///< Name of shared memory object (optional) |
| 58 | 58 | ||
| 59 | private: | 59 | private: |
| 60 | SharedMemory() = default; | 60 | SharedMemory(); |
| 61 | ~SharedMemory() override; | ||
| 61 | }; | 62 | }; |
| 62 | 63 | ||
| 63 | } // namespace | 64 | } // namespace |
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index 3c6669ca2..9ad53b8cf 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp | |||
| @@ -40,8 +40,8 @@ static Thread* current_thread; | |||
| 40 | static const u32 INITIAL_THREAD_ID = 1; ///< The first available thread id at startup | 40 | static const u32 INITIAL_THREAD_ID = 1; ///< The first available thread id at startup |
| 41 | static u32 next_thread_id; ///< The next available thread id | 41 | static u32 next_thread_id; ///< The next available thread id |
| 42 | 42 | ||
| 43 | Thread::Thread() { | 43 | Thread::Thread() {} |
| 44 | } | 44 | Thread::~Thread() {} |
| 45 | 45 | ||
| 46 | Thread* GetCurrentThread() { | 46 | Thread* GetCurrentThread() { |
| 47 | return current_thread; | 47 | return current_thread; |
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index f29897ae8..980c2613a 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h | |||
| @@ -128,6 +128,7 @@ public: | |||
| 128 | 128 | ||
| 129 | private: | 129 | private: |
| 130 | Thread(); | 130 | Thread(); |
| 131 | ~Thread() override; | ||
| 131 | 132 | ||
| 132 | /// Handle used as userdata to reference this object when inserting into the CoreTiming queue. | 133 | /// Handle used as userdata to reference this object when inserting into the CoreTiming queue. |
| 133 | Handle callback_handle; | 134 | Handle callback_handle; |
diff --git a/src/core/hle/kernel/timer.cpp b/src/core/hle/kernel/timer.cpp index 90e5e64b3..7c3cdc0d0 100644 --- a/src/core/hle/kernel/timer.cpp +++ b/src/core/hle/kernel/timer.cpp | |||
| @@ -17,6 +17,9 @@ static int timer_callback_event_type = -1; | |||
| 17 | // us to simply use a pool index or similar. | 17 | // us to simply use a pool index or similar. |
| 18 | static Kernel::HandleTable timer_callback_handle_table; | 18 | static Kernel::HandleTable timer_callback_handle_table; |
| 19 | 19 | ||
| 20 | Timer::Timer() {} | ||
| 21 | Timer::~Timer() {} | ||
| 22 | |||
| 20 | ResultVal<SharedPtr<Timer>> Timer::Create(ResetType reset_type, std::string name) { | 23 | ResultVal<SharedPtr<Timer>> Timer::Create(ResetType reset_type, std::string name) { |
| 21 | SharedPtr<Timer> timer(new Timer); | 24 | SharedPtr<Timer> timer(new Timer); |
| 22 | // TOOD(yuriks): Don't create Handle (see Thread::Create()) | 25 | // TOOD(yuriks): Don't create Handle (see Thread::Create()) |
diff --git a/src/core/hle/kernel/timer.h b/src/core/hle/kernel/timer.h index f72b8b31b..e217d6dae 100644 --- a/src/core/hle/kernel/timer.h +++ b/src/core/hle/kernel/timer.h | |||
| @@ -49,7 +49,8 @@ public: | |||
| 49 | void Clear(); | 49 | void Clear(); |
| 50 | 50 | ||
| 51 | private: | 51 | private: |
| 52 | Timer() = default; | 52 | Timer(); |
| 53 | ~Timer() override; | ||
| 53 | 54 | ||
| 54 | /// Handle used as userdata to reference this object when inserting into the CoreTiming queue. | 55 | /// Handle used as userdata to reference this object when inserting into the CoreTiming queue. |
| 55 | Handle callback_handle; | 56 | Handle callback_handle; |