From b6c915c2f83581126556ebed19974d4bf19312ad Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 11 Aug 2020 07:23:25 +0300 Subject: [PATCH] Fix BufferSlice self-move. GitOrigin-RevId: 904ea326cc860dd92c49d319fc5fabde22a35223 --- tdutils/td/utils/buffer.h | 3 +++ test/http.cpp | 2 ++ 2 files changed, 5 insertions(+) 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());