From 90eeba45df02ba8a415b8fcc15f862c1c7334aeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Sat, 7 Apr 2018 09:54:41 +0300 Subject: [PATCH] MXS-1506: Use mxs::Buffer for current query The mxs::Buffer class already implemented most of the code that was in the RWSplitSession class. --- .../routing/readwritesplit/rwsplitsession.cc | 3 +-- .../routing/readwritesplit/rwsplitsession.hh | 13 ++++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/server/modules/routing/readwritesplit/rwsplitsession.cc b/server/modules/routing/readwritesplit/rwsplitsession.cc index de43c6f3a..7206b49f4 100644 --- a/server/modules/routing/readwritesplit/rwsplitsession.cc +++ b/server/modules/routing/readwritesplit/rwsplitsession.cc @@ -37,8 +37,7 @@ RWSplitSession::RWSplitSession(RWSplit* instance, MXS_SESSION* session, m_wait_gtid_state(EXPECTING_NOTHING), m_next_seq(0), m_qc(this, session, instance->config().use_sql_variables_in), - m_retry_duration(0), - m_current_query(NULL) + m_retry_duration(0) { if (m_config.rw_max_slave_conn_percent) { diff --git a/server/modules/routing/readwritesplit/rwsplitsession.hh b/server/modules/routing/readwritesplit/rwsplitsession.hh index fa111979a..f3c1df7da 100644 --- a/server/modules/routing/readwritesplit/rwsplitsession.hh +++ b/server/modules/routing/readwritesplit/rwsplitsession.hh @@ -19,6 +19,7 @@ #include +#include #include #include @@ -127,7 +128,7 @@ public: uint32_t m_next_seq; /**< Next packet's sequence number */ mxs::QueryClassifier m_qc; /**< The query classifier. */ uint64_t m_retry_duration; /**< Total time spent retrying queries */ - GWBUF* m_current_query; /**< Current query being executed, NULL for no query */ + mxs::Buffer m_current_query; /**< Current query being executed */ private: RWSplitSession(RWSplit* instance, MXS_SESSION* session, @@ -201,8 +202,8 @@ private: */ inline void set_query(GWBUF* query) { - ss_dassert(!m_current_query); - m_current_query = gwbuf_clone(query); + ss_dassert(!m_current_query.get()); + m_current_query.reset(gwbuf_clone(query)); } /** @@ -212,9 +213,7 @@ private: */ inline GWBUF* release_query() { - GWBUF* rval = m_current_query; - m_current_query = NULL; - return rval; + return m_current_query.release(); } /** @@ -222,7 +221,7 @@ private: */ inline void reset_query() { - gwbuf_free(release_query()); + m_current_query.reset(); } };