Browse Source

core: hle: kernel: object: Implement Finalize() virtual method.

nce_cpp
bunnei 5 years ago
parent
commit
eb3a02a3fd
  1. 2
      src/core/hle/kernel/client_port.h
  2. 2
      src/core/hle/kernel/client_session.h
  3. 4
      src/core/hle/kernel/handle_table.cpp
  4. 2
      src/core/hle/kernel/k_synchronization_object.cpp
  5. 2
      src/core/hle/kernel/object.h
  6. 2
      src/core/hle/kernel/process.h
  7. 2
      src/core/hle/kernel/readable_event.h
  8. 2
      src/core/hle/kernel/resource_limit.h
  9. 2
      src/core/hle/kernel/server_port.h
  10. 2
      src/core/hle/kernel/server_session.h
  11. 2
      src/core/hle/kernel/session.h
  12. 2
      src/core/hle/kernel/shared_memory.h
  13. 2
      src/core/hle/kernel/transfer_memory.h
  14. 4
      src/core/hle/kernel/writable_event.cpp
  15. 3
      src/core/hle/kernel/writable_event.h

2
src/core/hle/kernel/client_port.h

@ -51,6 +51,8 @@ public:
*/
void ConnectionClosed();
void Finalize() override {}
private:
std::shared_ptr<ServerPort> server_port; ///< ServerPort associated with this client port.
u32 max_sessions = 0; ///< Maximum number of simultaneous sessions the port can have

2
src/core/hle/kernel/client_session.h

@ -51,6 +51,8 @@ public:
bool IsSignaled() const override;
void Finalize() override {}
private:
static ResultVal<std::shared_ptr<ClientSession>> Create(KernelCore& kernel,
std::shared_ptr<Session> parent,

4
src/core/hle/kernel/handle_table.cpp

@ -89,6 +89,10 @@ ResultCode HandleTable::Close(Handle handle) {
const u16 slot = GetSlot(handle);
if (objects[slot].use_count() == 1) {
objects[slot]->Finalize();
}
objects[slot] = nullptr;
generations[slot] = next_free_slot;

2
src/core/hle/kernel/k_synchronization_object.cpp

@ -136,7 +136,7 @@ ResultCode KSynchronizationObject::Wait(KernelCore& kernel, s32* out_index,
KSynchronizationObject::KSynchronizationObject(KernelCore& kernel) : Object{kernel} {}
KSynchronizationObject ::~KSynchronizationObject() = default;
KSynchronizationObject::~KSynchronizationObject() = default;
void KSynchronizationObject::NotifyAvailable(ResultCode result) {
KScopedSchedulerLock lock(kernel);

2
src/core/hle/kernel/object.h

@ -61,6 +61,8 @@ public:
*/
bool IsWaitable() const;
virtual void Finalize() = 0;
protected:
/// The kernel instance this object was created under.
KernelCore& kernel;

2
src/core/hle/kernel/process.h

@ -308,6 +308,8 @@ public:
bool IsSignaled() const override;
void Finalize() override {}
///////////////////////////////////////////////////////////////////////////////////////////////
// Thread-local storage management

2
src/core/hle/kernel/readable_event.h

@ -47,6 +47,8 @@ public:
bool IsSignaled() const override;
void Finalize() override {}
private:
explicit ReadableEvent(KernelCore& kernel);

2
src/core/hle/kernel/resource_limit.h

@ -85,6 +85,8 @@ public:
*/
ResultCode SetLimitValue(ResourceType resource, s64 value);
void Finalize() override {}
private:
// TODO(Subv): Increment resource limit current values in their respective Kernel::T::Create
// functions

2
src/core/hle/kernel/server_port.h

@ -81,6 +81,8 @@ public:
bool IsSignaled() const override;
void Finalize() override {}
private:
/// ServerSessions waiting to be accepted by the port
std::vector<std::shared_ptr<ServerSession>> pending_sessions;

2
src/core/hle/kernel/server_session.h

@ -126,6 +126,8 @@ public:
bool IsSignaled() const override;
void Finalize() override {}
private:
/// Queues a sync request from the emulated application.
ResultCode QueueSyncRequest(std::shared_ptr<KThread> thread, Core::Memory::Memory& memory);

2
src/core/hle/kernel/session.h

@ -39,6 +39,8 @@ public:
bool IsSignaled() const override;
void Finalize() override {}
std::shared_ptr<ClientSession> Client() {
if (auto result{client.lock()}) {
return result;

2
src/core/hle/kernel/shared_memory.h

@ -71,6 +71,8 @@ public:
return device_memory.GetPointer(physical_address + offset);
}
void Finalize() override {}
private:
Core::DeviceMemory& device_memory;
Process* owner_process{};

2
src/core/hle/kernel/transfer_memory.h

@ -72,6 +72,8 @@ public:
/// is closed.
ResultCode Reset();
void Finalize() override {}
private:
/// The base address for the memory managed by this instance.
VAddr base_address{};

4
src/core/hle/kernel/writable_event.cpp

@ -38,8 +38,4 @@ void WritableEvent::Clear() {
readable->Clear();
}
bool WritableEvent::IsSignaled() const {
return readable->IsSignaled();
}
} // namespace Kernel

3
src/core/hle/kernel/writable_event.h

@ -46,7 +46,8 @@ public:
void Signal();
void Clear();
bool IsSignaled() const;
void Finalize() override {}
private:
explicit WritableEvent(KernelCore& kernel);

Loading…
Cancel
Save