diff --git a/be/src/common/status.h b/be/src/common/status.h index b2d5cf7d67f199..9264b3ae84c618 100644 --- a/be/src/common/status.h +++ b/be/src/common/status.h @@ -314,7 +314,7 @@ inline bool capture_stacktrace(int code) { class Status { public: - Status() : _code(ErrorCode::OK) {} + Status() : _code(ErrorCode::OK), _err_msg(nullptr) {} // copy c'tor makes copy of error detail so Status can be returned by value Status(const Status& rhs) { *this = rhs; } @@ -332,7 +332,13 @@ class Status { } // move assign - Status& operator=(Status&& rhs) noexcept = default; + Status& operator=(Status&& rhs) noexcept { + _code = rhs._code; + if (rhs._err_msg) { + _err_msg = std::move(rhs._err_msg); + } + return *this; + } Status static create(const TStatus& status) { return Error(status.status_code,