diff options
author | Jens Schmer <jens.schmer+git@gmail.com> | 2018-12-12 20:07:14 +0100 |
---|---|---|
committer | Jens Schmer <jens.schmer+git@gmail.com> | 2018-12-13 20:08:23 +0100 |
commit | 27a9cc2e63d07989fdb4efeeb6a6b3417281f177 (patch) | |
tree | 7df6d4eadc9af7b42e467576dbf16528664f8a9e /src/core/hle/kernel/kernel.cpp | |
parent | 700075beb6fb68ec40ddf622a6b634377a5286c5 (diff) |
Fix Service object leak on emulation stop
Services created with the ServiceFramework base class install themselves as HleHandlers with an owning shared_ptr in the ServerPort ServiceFrameworkBase::port member variable, creating a cyclic ownership between ServiceFrameworkBase and the ServerPort, preventing deletion of the service objects.
Fix that by removing the ServiceFrameworkBase::port member because that was only used to detect multiple attempts at installing a port. Instead store a flag if the port was already installed to achieve the same functionality.
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
0 files changed, 0 insertions, 0 deletions