summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner2015-01-31 22:56:59 -0200
committerGravatar Yuri Kunde Schlesner2015-02-02 15:37:07 -0200
commit7725256f649719dcce2c50ea84e79d6199dd9a50 (patch)
treed9266b5991cc7c6a2c9c6bc55f39dd9c71897d59 /src
parentUpdate boost external (diff)
downloadyuzu-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.txt1
-rw-r--r--src/core/hle/kernel/address_arbiter.cpp3
-rw-r--r--src/core/hle/kernel/address_arbiter.h3
-rw-r--r--src/core/hle/kernel/event.cpp3
-rw-r--r--src/core/hle/kernel/event.h3
-rw-r--r--src/core/hle/kernel/mutex.cpp3
-rw-r--r--src/core/hle/kernel/mutex.h3
-rw-r--r--src/core/hle/kernel/semaphore.cpp3
-rw-r--r--src/core/hle/kernel/semaphore.h3
-rw-r--r--src/core/hle/kernel/session.cpp13
-rw-r--r--src/core/hle/kernel/session.h4
-rw-r--r--src/core/hle/kernel/shared_memory.cpp3
-rw-r--r--src/core/hle/kernel/shared_memory.h3
-rw-r--r--src/core/hle/kernel/thread.cpp4
-rw-r--r--src/core/hle/kernel/thread.h1
-rw-r--r--src/core/hle/kernel/timer.cpp3
-rw-r--r--src/core/hle/kernel/timer.h3
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
16namespace Kernel { 16namespace Kernel {
17 17
18AddressArbiter::AddressArbiter() {}
19AddressArbiter::~AddressArbiter() {}
20
18ResultVal<SharedPtr<AddressArbiter>> AddressArbiter::Create(std::string name) { 21ResultVal<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
49private: 49private:
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
15namespace Kernel { 15namespace Kernel {
16 16
17Event::Event() {}
18Event::~Event() {}
19
17ResultVal<SharedPtr<Event>> Event::Create(ResetType reset_type, std::string name) { 20ResultVal<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
41private: 41private:
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
41Mutex::Mutex() {}
42Mutex::~Mutex() {}
43
41ResultVal<SharedPtr<Mutex>> Mutex::Create(bool initial_locked, std::string name) { 44ResultVal<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
49private: 49private:
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
11namespace Kernel { 11namespace Kernel {
12 12
13Semaphore::Semaphore() {}
14Semaphore::~Semaphore() {}
15
13ResultVal<SharedPtr<Semaphore>> Semaphore::Create(s32 initial_count, s32 max_count, 16ResultVal<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
49private: 49private:
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
8namespace Kernel {
9
10Session::Session() {}
11Session::~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
9namespace Kernel { 10namespace Kernel {
10 11
@@ -43,6 +44,9 @@ inline static u32* GetCommandBuffer(const int offset=0) {
43 */ 44 */
44class Session : public WaitObject { 45class Session : public WaitObject {
45public: 46public:
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
10namespace Kernel { 10namespace Kernel {
11 11
12SharedMemory::SharedMemory() {}
13SharedMemory::~SharedMemory() {}
14
12ResultVal<SharedPtr<SharedMemory>> SharedMemory::Create(std::string name) { 15ResultVal<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
59private: 59private:
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;
40static const u32 INITIAL_THREAD_ID = 1; ///< The first available thread id at startup 40static const u32 INITIAL_THREAD_ID = 1; ///< The first available thread id at startup
41static u32 next_thread_id; ///< The next available thread id 41static u32 next_thread_id; ///< The next available thread id
42 42
43Thread::Thread() { 43Thread::Thread() {}
44} 44Thread::~Thread() {}
45 45
46Thread* GetCurrentThread() { 46Thread* 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
129private: 129private:
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.
18static Kernel::HandleTable timer_callback_handle_table; 18static Kernel::HandleTable timer_callback_handle_table;
19 19
20Timer::Timer() {}
21Timer::~Timer() {}
22
20ResultVal<SharedPtr<Timer>> Timer::Create(ResetType reset_type, std::string name) { 23ResultVal<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
51private: 51private:
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;