mirror of
https://github.com/sogou/workflow.git
synced 2026-10-21 22:56:42 +08:00
Merge pull request #190 from Barenboim/master
optimize messages' move constructor.
This commit is contained in:
@@ -228,8 +228,7 @@ HttpMessage::HttpMessage(HttpMessage&& msg)
|
||||
msg.size_limit = (size_t)-1;
|
||||
|
||||
this->parser = msg.parser;
|
||||
msg.parser = new http_parser_t;
|
||||
http_parser_init(this->parser->is_resp, msg.parser);
|
||||
msg.parser = NULL;
|
||||
|
||||
INIT_LIST_HEAD(&this->output_body);
|
||||
list_splice_init(&msg.output_body, &this->output_body);
|
||||
@@ -251,8 +250,7 @@ HttpMessage& HttpMessage::operator = (HttpMessage&& msg)
|
||||
delete this->parser;
|
||||
|
||||
this->parser = msg.parser;
|
||||
msg.parser = new http_parser_t;
|
||||
http_parser_init(this->parser->is_resp, msg.parser);
|
||||
msg.parser = NULL;
|
||||
|
||||
this->clear_output_body();
|
||||
list_splice_init(&msg.output_body, &this->output_body);
|
||||
|
||||
@@ -193,8 +193,11 @@ public:
|
||||
virtual ~HttpMessage()
|
||||
{
|
||||
this->clear_output_body();
|
||||
http_parser_deinit(this->parser);
|
||||
delete this->parser;
|
||||
if (this->parser)
|
||||
{
|
||||
http_parser_deinit(this->parser);
|
||||
delete this->parser;
|
||||
}
|
||||
}
|
||||
|
||||
/* for std::move() */
|
||||
|
||||
@@ -1612,9 +1612,12 @@ KafkaMessage::KafkaMessage()
|
||||
|
||||
KafkaMessage::~KafkaMessage()
|
||||
{
|
||||
kafka_parser_deinit(this->parser);
|
||||
delete this->parser;
|
||||
delete this->stream;
|
||||
if (this->parser)
|
||||
{
|
||||
kafka_parser_deinit(this->parser);
|
||||
delete this->parser;
|
||||
delete this->stream;
|
||||
}
|
||||
}
|
||||
|
||||
KafkaMessage::KafkaMessage(KafkaMessage&& msg)
|
||||
@@ -1623,8 +1626,9 @@ KafkaMessage::KafkaMessage(KafkaMessage&& msg)
|
||||
msg.size_limit = (size_t)-1;
|
||||
|
||||
this->parser = msg.parser;
|
||||
msg.parser = new kafka_parser_t;
|
||||
kafka_parser_init(msg.parser);
|
||||
this->stream = msg.stream;
|
||||
msg.parser = NULL;
|
||||
msg.stream = NULL;
|
||||
|
||||
this->msgbuf = std::move(msg.msgbuf);
|
||||
this->headbuf = std::move(msg.headbuf);
|
||||
@@ -1652,10 +1656,12 @@ KafkaMessage& KafkaMessage::operator= (KafkaMessage &&msg)
|
||||
|
||||
kafka_parser_deinit(this->parser);
|
||||
delete this->parser;
|
||||
delete this->stream;
|
||||
|
||||
this->parser = msg.parser;
|
||||
msg.parser = new kafka_parser_t;
|
||||
kafka_parser_init(msg.parser);
|
||||
this->stream = msg.stream;
|
||||
msg.parser = NULL;
|
||||
msg.stream = NULL;
|
||||
|
||||
this->msgbuf = std::move(msg.msgbuf);
|
||||
this->headbuf = std::move(msg.headbuf);
|
||||
|
||||
@@ -32,10 +32,13 @@ namespace protocol
|
||||
|
||||
MySQLMessage::~MySQLMessage()
|
||||
{
|
||||
mysql_parser_deinit(parser_);
|
||||
mysql_stream_deinit(stream_);
|
||||
delete parser_;
|
||||
delete stream_;
|
||||
if (parser_)
|
||||
{
|
||||
mysql_parser_deinit(parser_);
|
||||
mysql_stream_deinit(stream_);
|
||||
delete parser_;
|
||||
delete stream_;
|
||||
}
|
||||
}
|
||||
|
||||
MySQLMessage::MySQLMessage(MySQLMessage&& move)
|
||||
@@ -48,12 +51,10 @@ MySQLMessage::MySQLMessage(MySQLMessage&& move)
|
||||
seqid_ = move.seqid_;
|
||||
cur_size_ = move.cur_size_;
|
||||
|
||||
move.parser_ = new mysql_parser_t;
|
||||
move.stream_ = new mysql_stream_t;
|
||||
move.parser_ = NULL;
|
||||
move.stream_ = NULL;
|
||||
move.seqid_ = 0;
|
||||
move.cur_size_ = 0;
|
||||
mysql_parser_init(move.parser_);
|
||||
mysql_stream_init(move.stream_);
|
||||
}
|
||||
|
||||
MySQLMessage& MySQLMessage::operator= (MySQLMessage&& move)
|
||||
@@ -73,12 +74,10 @@ MySQLMessage& MySQLMessage::operator= (MySQLMessage&& move)
|
||||
seqid_ = move.seqid_;
|
||||
cur_size_ = move.cur_size_;
|
||||
|
||||
move.parser_ = new mysql_parser_t;
|
||||
move.stream_ = new mysql_stream_t;
|
||||
move.parser_ = NULL;
|
||||
move.stream_ = NULL;
|
||||
move.seqid_ = 0;
|
||||
move.cur_size_ = 0;
|
||||
mysql_parser_init(move.parser_);
|
||||
mysql_stream_init(move.stream_);
|
||||
}
|
||||
|
||||
return *this;
|
||||
|
||||
@@ -494,10 +494,9 @@ RedisMessage::RedisMessage(RedisMessage&& move)
|
||||
stream_ = move.stream_;
|
||||
cur_size_ = move.cur_size_;
|
||||
|
||||
move.parser_ = new redis_parser_t;
|
||||
move.stream_ = new EncodeStream;
|
||||
move.parser_ = NULL;
|
||||
move.stream_ = NULL;
|
||||
move.cur_size_ = 0;
|
||||
redis_parser_init(move.parser_);
|
||||
}
|
||||
|
||||
RedisMessage& RedisMessage::operator= (RedisMessage &&move)
|
||||
@@ -515,10 +514,9 @@ RedisMessage& RedisMessage::operator= (RedisMessage &&move)
|
||||
stream_ = move.stream_;
|
||||
cur_size_ = move.cur_size_;
|
||||
|
||||
move.parser_ = new redis_parser_t;
|
||||
move.stream_ = new EncodeStream;
|
||||
move.parser_ = NULL;
|
||||
move.stream_ = NULL;
|
||||
move.cur_size_ = 0;
|
||||
redis_parser_init(move.parser_);
|
||||
}
|
||||
|
||||
return *this;
|
||||
|
||||
@@ -321,9 +321,12 @@ inline RedisMessage::RedisMessage():
|
||||
|
||||
inline RedisMessage::~RedisMessage()
|
||||
{
|
||||
redis_parser_deinit(parser_);
|
||||
delete parser_;
|
||||
delete stream_;
|
||||
if (parser_)
|
||||
{
|
||||
redis_parser_deinit(parser_);
|
||||
delete parser_;
|
||||
delete stream_;
|
||||
}
|
||||
}
|
||||
|
||||
inline bool RedisMessage::parse_success() const { return parser_->parse_succ; }
|
||||
|
||||
Reference in New Issue
Block a user