From 77f2c9bb246e5d48240f3f869ae625cd9f77568f Mon Sep 17 00:00:00 2001 From: peavey Date: Fri, 1 Jun 2007 20:31:29 +0000 Subject: [PATCH] Make valgrind happy and not leak mem. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7201 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/commands/cmd_whowas.h | 4 ++++ src/cmd_stats.cpp | 2 +- src/cmd_whowas.cpp | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/commands/cmd_whowas.h b/include/commands/cmd_whowas.h index 2568a0986..e2bab7a0f 100644 --- a/include/commands/cmd_whowas.h +++ b/include/commands/cmd_whowas.h @@ -67,6 +67,10 @@ class cmd_whowas : public command_t */ whowas_users_fifo whowas_fifo; + /* String holding stats so it can be collected + */ + std::string stats; + public: cmd_whowas(InspIRCd* Instance); CmdResult Handle(const char** parameters, int pcnt, userrec *user); diff --git a/src/cmd_stats.cpp b/src/cmd_stats.cpp index 5a22a2b4c..c44042e51 100644 --- a/src/cmd_stats.cpp +++ b/src/cmd_stats.cpp @@ -190,7 +190,7 @@ DllExport void DoStats(InspIRCd* ServerInstance, char statschar, userrec* user, whowas_command->HandleInternal(WHOWAS_STATS, params); if (whowas_stats.GetExt("stats")) { - char* stats = NULL; + char* stats; whowas_stats.GetExt("stats", stats); results.push_back(sn+" 249 "+user->nick+" :"+ConvToStr(stats)); } diff --git a/src/cmd_whowas.cpp b/src/cmd_whowas.cpp index 7f78a22ac..10643680c 100644 --- a/src/cmd_whowas.cpp +++ b/src/cmd_whowas.cpp @@ -129,7 +129,8 @@ void cmd_whowas::GetStats(Extensible* ext) whowas_bytes += (sizeof(whowas_set) + ( sizeof(WhoWasGroup) * n->size() ) ); } } - ext->Extend("stats", std::string("Whowas(MAPSETS) " +ConvToStr(whowas_size)+" ("+ConvToStr(whowas_bytes)+" bytes)").c_str()); + stats.assign("Whowas(MAPSETS) " +ConvToStr(whowas_size)+" ("+ConvToStr(whowas_bytes)+" bytes)"); + ext->Extend("stats", stats.c_str()); } void cmd_whowas::AddToWhoWas(userrec* user) -- 2.39.5