| Index: third_party/protobuf/src/google/protobuf/stubs/statusor.h
|
| diff --git a/third_party/protobuf/src/google/protobuf/stubs/statusor.h b/third_party/protobuf/src/google/protobuf/stubs/statusor.h
|
| index a9d2b374bf9a0ec58067f2895a3d8c378a77e898..29f869ad5e8d58a334c8cf7067e83027cf9b9e61 100644
|
| --- a/third_party/protobuf/src/google/protobuf/stubs/statusor.h
|
| +++ b/third_party/protobuf/src/google/protobuf/stubs/statusor.h
|
| @@ -224,14 +224,14 @@ inline StatusOr<T>& StatusOr<T>::operator=(const StatusOr<T>& other) {
|
| template<typename T>
|
| template<typename U>
|
| inline StatusOr<T>::StatusOr(const StatusOr<U>& other)
|
| - : status_(other.status_), value_(other.value_) {
|
| + : status_(other.status_), value_(other.status_.ok() ? other.value_ : T()) {
|
| }
|
|
|
| template<typename T>
|
| template<typename U>
|
| inline StatusOr<T>& StatusOr<T>::operator=(const StatusOr<U>& other) {
|
| status_ = other.status_;
|
| - value_ = other.value_;
|
| + if (status_.ok()) value_ = other.value_;
|
| return *this;
|
| }
|
|
|
|
|