From c24820834a65223343961dd8b92c8e5e9c0ea95d Mon Sep 17 00:00:00 2001 From: "dlenev@brandersnatch.localdomain" <> Date: Fri, 4 Mar 2005 20:54:24 +0300 Subject: [PATCH] Fix for memory leak which was introduced by patch improving locking in SP. Made mysql_make_view() to call destructor for st_lex_local objects before throwing them away (this happens in case of error). --- sql/sql_lex.h | 4 ++-- sql/sql_view.cc | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sql/sql_lex.h b/sql/sql_lex.h index e50c4edabb4..3588f376d2f 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -816,8 +816,8 @@ typedef struct st_lex hash_init(&spfuns, system_charset_info, 0, 0, 0, sp_lex_sp_key, 0, 0); hash_init(&spprocs, system_charset_info, 0, 0, 0, sp_lex_sp_key, 0, 0); } - - ~st_lex() + + virtual ~st_lex() { hash_free(&spfuns); hash_free(&spprocs); diff --git a/sql/sql_view.cc b/sql/sql_view.cc index 0c7bf2632ec..31277452118 100644 --- a/sql/sql_view.cc +++ b/sql/sql_view.cc @@ -854,6 +854,7 @@ ok2: err: if (arena) thd->restore_backup_item_arena(arena, &backup); + delete table->view; table->view= 0; // now it is not VIEW placeholder thd->lex= old_lex; DBUG_RETURN(1);