input/async: use std::exchange()
This commit is contained in:
parent
99a447dff5
commit
513212c5e8
@ -50,8 +50,7 @@ AsyncInputStream::~AsyncInputStream()
|
|||||||
void
|
void
|
||||||
AsyncInputStream::SetTag(Tag *_tag) noexcept
|
AsyncInputStream::SetTag(Tag *_tag) noexcept
|
||||||
{
|
{
|
||||||
delete tag;
|
delete std::exchange(tag, _tag);
|
||||||
tag = _tag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -77,11 +76,9 @@ AsyncInputStream::Resume()
|
|||||||
void
|
void
|
||||||
AsyncInputStream::Check()
|
AsyncInputStream::Check()
|
||||||
{
|
{
|
||||||
if (postponed_exception) {
|
if (postponed_exception)
|
||||||
auto e = std::move(postponed_exception);
|
std::rethrow_exception(std::exchange(postponed_exception,
|
||||||
postponed_exception = std::exception_ptr();
|
std::exception_ptr()));
|
||||||
std::rethrow_exception(e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -154,9 +151,7 @@ AsyncInputStream::SeekDone() noexcept
|
|||||||
Tag *
|
Tag *
|
||||||
AsyncInputStream::ReadTag()
|
AsyncInputStream::ReadTag()
|
||||||
{
|
{
|
||||||
Tag *result = tag;
|
return std::exchange(tag, nullptr);
|
||||||
tag = nullptr;
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
Loading…
Reference in New Issue
Block a user