From 4b1155e6c5a41f59c8308bebc07d621df4f7eb29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Mon, 25 Jan 2016 16:46:33 +0000 Subject: [PATCH] Reduce calls to malloc() myhash in Query_Processor::query_parser_update_counters() is now in the stack --- lib/Query_Processor.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/Query_Processor.cpp b/lib/Query_Processor.cpp index d9d66ee45..e887a1e18 100644 --- a/lib/Query_Processor.cpp +++ b/lib/Query_Processor.cpp @@ -874,8 +874,10 @@ unsigned long long Query_Processor::query_parser_update_counters(MySQL_Session * if (qp->digest_text) { // this code is executed only if digest_text is not NULL , that means mysql_thread___query_digests was true when the query started uint64_t hash2; - SpookyHash *myhash=new SpookyHash(); - myhash->Init(19,3); + //SpookyHash *myhash=new SpookyHash(); + //myhash->Init(19,3); + SpookyHash myhash; + myhash.Init(19,3); assert(sess); assert(sess->client_myds); assert(sess->client_myds->myconn); @@ -883,12 +885,12 @@ unsigned long long Query_Processor::query_parser_update_counters(MySQL_Session * MySQL_Connection_userinfo *ui=sess->client_myds->myconn->userinfo; assert(ui->username); assert(ui->schemaname); - myhash->Update(ui->username,strlen(ui->username)); - myhash->Update(&qp->digest,sizeof(qp->digest)); - myhash->Update(ui->schemaname,strlen(ui->schemaname)); - myhash->Update(&sess->current_hostgroup,sizeof(sess->default_hostgroup)); - myhash->Final(&qp->digest_total,&hash2); - delete myhash; + myhash.Update(ui->username,strlen(ui->username)); + myhash.Update(&qp->digest,sizeof(qp->digest)); + myhash.Update(ui->schemaname,strlen(ui->schemaname)); + myhash.Update(&sess->current_hostgroup,sizeof(sess->default_hostgroup)); + myhash.Final(&qp->digest_total,&hash2); + //delete myhash; update_query_digest(qp, sess->current_hostgroup, ui, t, sess->thread->curtime); } return ret;