Use a explicit copy constructor as we noticed stack-buffer-overflow inside the copy ctor when ASAN is enabled
Signed-off-by: Tao He <sighingnow@gmail.com>
This commit is contained in:
parent
ffb489ba4b
commit
9a5267286b
|
|
@ -85,6 +85,8 @@ namespace etcd
|
||||||
|
|
||||||
Response();
|
Response();
|
||||||
|
|
||||||
|
Response(const Response &);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if this is a successful response
|
* Returns true if this is a successful response
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,32 @@
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
etcd::Response::Response()
|
||||||
|
: _error_code(0),
|
||||||
|
_index(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
etcd::Response::Response(const etcd::Response & response) {
|
||||||
|
this->_error_code = response._error_code;
|
||||||
|
this->_error_message = response._error_message;
|
||||||
|
this->_index = response._index;
|
||||||
|
this->_action = response._action;
|
||||||
|
this->_value = response._value;
|
||||||
|
this->_prev_value = response._prev_value;
|
||||||
|
this->_values = response._values;
|
||||||
|
this->_keys = response._keys;
|
||||||
|
this->_compact_revision = response._compact_revision;
|
||||||
|
this->_lock_key = response._lock_key;
|
||||||
|
this->_name = response._name;
|
||||||
|
this->_events = response._events;
|
||||||
|
this->_duration = response._duration;
|
||||||
|
|
||||||
|
this->_cluster_id = response._cluster_id;
|
||||||
|
this->_member_id = response._member_id;
|
||||||
|
this->_raft_term = response._raft_term;
|
||||||
|
}
|
||||||
|
|
||||||
etcd::Response::Response(const etcdv3::V3Response& reply, std::chrono::microseconds const& duration)
|
etcd::Response::Response(const etcdv3::V3Response& reply, std::chrono::microseconds const& duration)
|
||||||
{
|
{
|
||||||
_index = reply.get_index();
|
_index = reply.get_index();
|
||||||
|
|
@ -41,13 +67,6 @@ etcd::Response::Response(const etcdv3::V3Response& reply, std::chrono::microseco
|
||||||
_raft_term = reply.get_raft_term();
|
_raft_term = reply.get_raft_term();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
etcd::Response::Response()
|
|
||||||
: _error_code(0),
|
|
||||||
_index(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
etcd::Response::Response(int error_code, char const * error_message)
|
etcd::Response::Response(int error_code, char const * error_message)
|
||||||
: _error_code(error_code),
|
: _error_code(error_code),
|
||||||
_error_message(error_message),
|
_error_message(error_message),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue