diff --git a/externals/boost b/externals/boost index 55725b779..1c857c041 160000 --- a/externals/boost +++ b/externals/boost @@ -1 +1 @@ -Subproject commit 55725b7796c7faa0a4af869e412d0410bd47612d +Subproject commit 1c857c04195db89c66c347ddfad93a7f3666f2d3 diff --git a/src/core/hle/service/apt/applet_manager.cpp b/src/core/hle/service/apt/applet_manager.cpp index 8a24595ff..6612a720e 100644 --- a/src/core/hle/service/apt/applet_manager.cpp +++ b/src/core/hle/service/apt/applet_manager.cpp @@ -10,6 +10,8 @@ #include "core/hle/service/apt/ns.h" #include "core/hle/service/cfg/cfg.h" +SERVICE_CONSTRUCT_IMPL(Service::APT::AppletManager) + namespace Service::APT { enum class AppletPos { Application = 0, Library = 1, System = 2, SysLibrary = 3, Resident = 4 }; diff --git a/src/core/hle/service/apt/applet_manager.h b/src/core/hle/service/apt/applet_manager.h index e799c92d2..0f28e57c8 100644 --- a/src/core/hle/service/apt/applet_manager.h +++ b/src/core/hle/service/apt/applet_manager.h @@ -6,10 +6,10 @@ #include #include -#include #include #include -#include "common/serialization/optional.h" +#include +#include #include "core/global.h" #include "core/hle/kernel/event.h" #include "core/hle/result.h" @@ -193,7 +193,8 @@ public: private: /// Parameter data to be returned in the next call to Glance/ReceiveParameter. - std::optional next_parameter; + // NOTE: A bug in gcc prevents serializing std::optional + boost::optional next_parameter; static constexpr std::size_t NumAppletSlot = 4; @@ -268,9 +269,4 @@ private: } // namespace Service::APT -namespace boost::serialization { -template -inline void load_construct_data(Archive& ar, Service::APT::AppletManager* t, const unsigned int) { - ::new (t) Service::APT::AppletManager(Core::Global()); -} -} // namespace boost::serialization +SERVICE_CONSTRUCT(Service::APT::AppletManager)