From d5871e48aea282ca36e0be08e78b7f725bc72bf4 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Tue, 15 May 2018 15:17:23 +0300 Subject: [PATCH] MXS-1775 Change assumption of Monitor::destroy() function Used to be assumed to be a static member function, now assumed to be a regular member function. --- include/maxscale/monitor.hh | 2 +- server/modules/monitor/grmon/grmon.cc | 7 ++++++- server/modules/monitor/mariadbmon/mariadbmon.cc | 4 ++-- server/modules/monitor/mariadbmon/mariadbmon.hh | 4 +--- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/include/maxscale/monitor.hh b/include/maxscale/monitor.hh index 6c6d316f0..e96b0b1c3 100644 --- a/include/maxscale/monitor.hh +++ b/include/maxscale/monitor.hh @@ -40,7 +40,7 @@ public: static void destroyInstance(MXS_MONITOR_INSTANCE* pInstance) { - MXS_EXCEPTION_GUARD(MonitorInstance::destroy(static_cast(pInstance))); + MXS_EXCEPTION_GUARD(static_cast(pInstance)->destroy()); } static bool startMonitor(MXS_MONITOR_INSTANCE* pInstance, diff --git a/server/modules/monitor/grmon/grmon.cc b/server/modules/monitor/grmon/grmon.cc index 134bf84fd..3bfa88064 100644 --- a/server/modules/monitor/grmon/grmon.cc +++ b/server/modules/monitor/grmon/grmon.cc @@ -36,7 +36,7 @@ struct GRMon : public MXS_MONITOR_INSTANCE GRMon& operator&(const GRMon&); public: static GRMon* create(MXS_MONITOR* monitor); - static void destroy(GRMon* monitor); + void destroy(); bool start(const MXS_CONFIG_PARAMETER* params); void stop(); void diagnostics(DCB* dcb) const; @@ -75,6 +75,11 @@ GRMon* GRMon::create(MXS_MONITOR* monitor) return new GRMon(monitor); } +void GRMon::destroy() +{ + delete this; +} + bool GRMon::start(const MXS_CONFIG_PARAMETER* params) { bool started = false; diff --git a/server/modules/monitor/mariadbmon/mariadbmon.cc b/server/modules/monitor/mariadbmon/mariadbmon.cc index 89af2f4a9..20b2e36cd 100644 --- a/server/modules/monitor/mariadbmon/mariadbmon.cc +++ b/server/modules/monitor/mariadbmon/mariadbmon.cc @@ -171,9 +171,9 @@ bool MariaDBMonitor::start(const MXS_CONFIG_PARAMETER* params) return !error; } -void MariaDBMonitor::destroy(MariaDBMonitor* monitor) +void MariaDBMonitor::destroy() { - delete monitor; + delete this; } /** diff --git a/server/modules/monitor/mariadbmon/mariadbmon.hh b/server/modules/monitor/mariadbmon/mariadbmon.hh index 2220fef68..b0573b7e1 100644 --- a/server/modules/monitor/mariadbmon/mariadbmon.hh +++ b/server/modules/monitor/mariadbmon/mariadbmon.hh @@ -80,10 +80,8 @@ public: /** * Destroyes aka deletes the instance. - * - * @param monitor The instance to be finished. */ - static void destroy(MariaDBMonitor* monitor); + void destroy(); /** * Stop the monitor. Waits until monitor has stopped.