Require rvalue for Handle::Unmanage

This commit is contained in:
yvt 2019-07-20 16:36:51 +09:00
parent b4dcec2e1c
commit 830db57c01
No known key found for this signature in database
GPG Key ID: 48F2768FA8D07C92
6 changed files with 8 additions and 8 deletions

View File

@ -592,7 +592,7 @@ namespace spades {
}
}
return map.Unmanage();
return std::move(map).Unmanage();
}
} // namespace client
} // namespace spades

View File

@ -142,7 +142,7 @@ namespace spades {
SPAssert(result);
if (result->gameMap) {
return result->gameMap.Unmanage();
return std::move(result->gameMap).Unmanage();
} else {
std::rethrow_exception(result->exceptionThrown);
}

View File

@ -94,7 +94,7 @@ namespace spades {
if (ptr)
ptr->AddRef();
}
Handle(Handle<T> &&h) : ptr(h.MaybeUnmanage()) {}
Handle(Handle<T> &&h) : ptr(std::move(h).MaybeUnmanage()) {}
Handle(T &ref) : ptr{&ref} { ptr->AddRef(); }
Handle(stmp::optional<T &> ref) : ptr{ref.get_pointer()} { if (ptr)
ptr->AddRef();
@ -158,7 +158,7 @@ namespace spades {
* Convert a `Handle` to a raw pointer, transfering the ownership.
* Throws an exception if the `Handle` is null.
*/
T *Unmanage() {
T *Unmanage() && {
SPAssert(ptr != NULL);
T *p = ptr;
ptr = NULL;
@ -167,7 +167,7 @@ namespace spades {
/**
* Convert a `Handle` to a raw pointer, transfering the ownership.
*/
T *MaybeUnmanage() {
T *MaybeUnmanage() && {
T *p = ptr;
ptr = NULL;
return p;

View File

@ -79,7 +79,7 @@ namespace spades {
inPixels += pitch;
}
}
return bmp.Unmanage();
return std::move(bmp).Unmanage();
} catch (...) {
throw;
}

View File

@ -124,6 +124,6 @@ namespace spades {
voxelModel->ForceMaterial(*meta.forceMaterial);
}
return voxelModel.Unmanage();
return std::move(voxelModel).Unmanage();
}
} // namespace spades

View File

@ -72,7 +72,7 @@ namespace spades {
} catch (...) {
throw;
}
return bmp.Unmanage();
return std::move(bmp).Unmanage();
}
void GLFlatMapRenderer::GameMapChanged(int x, int y, int z, client::GameMap *map) {