ams: prefer construct_at/destroy_at over placement new/explicit destructor

This commit is contained in:
Michael Scire
2021-03-21 20:30:40 -07:00
parent aff0da9427
commit d84dcb653d
49 changed files with 217 additions and 171 deletions

View File

@@ -23,8 +23,8 @@ namespace ams::gpio::driver {
Result OpenSessionImpl(GpioPadSession *out, Pad *pad, ddsf::AccessMode access_mode) {
/* Construct the session. */
auto *session = new (std::addressof(impl::GetPadSessionImpl(*out))) impl::PadSessionImpl;
auto session_guard = SCOPE_GUARD { session->~PadSessionImpl(); };
auto *session = std::construct_at(std::addressof(impl::GetPadSessionImpl(*out)));
auto session_guard = SCOPE_GUARD { std::destroy_at(session); };
/* Open the session. */
R_TRY(session->Open(pad, access_mode));
@@ -59,7 +59,7 @@ namespace ams::gpio::driver {
void CloseSession(GpioPadSession *session) {
AMS_ASSERT(session != nullptr);
impl::GetOpenPadSessionImpl(*session).~PadSessionImpl();
std::destroy_at(std::addressof(impl::GetOpenPadSessionImpl(*session)));
}
Result SetDirection(GpioPadSession *session, gpio::Direction direction) {