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 | 151c258fd67dce514d1c8d36800d478da4cc2aef (patch) | |
| tree | 7df6d4eadc9af7b42e467576dbf16528664f8a9e /src/core/memory.cpp | |
| parent | a22b09d5645e5cbb39dd5c3d3467c15b0475d4c0 (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/memory.cpp')
0 files changed, 0 insertions, 0 deletions
