diff --git a/tdutils/td/utils/buffer.h b/tdutils/td/utils/buffer.h index 975ddf3fa..6eb510584 100644 --- a/tdutils/td/utils/buffer.h +++ b/tdutils/td/utils/buffer.h @@ -122,6 +122,9 @@ class BufferSlice { debug_untrack(); // yes, debug_untrack } BufferSlice &operator=(BufferSlice &&other) { + if (this == &other) { + return *this; + } debug_untrack(); buffer_ = std::move(other.buffer_); begin_ = other.begin_; diff --git a/test/http.cpp b/test/http.cpp index b053b8730..ab55708bf 100644 --- a/test/http.cpp +++ b/test/http.cpp @@ -137,6 +137,8 @@ TEST(Http, reader) { { BufferSlice a("test test"); BufferSlice b = std::move(a); + a = std::move(a); + b = std::move(b); a = std::move(b); BufferSlice c = a.from_slice(a); CHECK(c.size() == a.size());