From 40c43365c5a955ed411e4d62e5eddd8d200b2a3c Mon Sep 17 00:00:00 2001 From: "serg@serg.mylan" <> Date: Thu, 22 Sep 2005 16:05:05 +0200 Subject: [PATCH] fixed a memory leak in ha_tina.cc --- sql/examples/ha_tina.cc | 10 ++++++++++ sql/examples/ha_tina.h | 3 +++ sql/handler.cc | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/sql/examples/ha_tina.cc b/sql/examples/ha_tina.cc index e01cc7cc980..5663cd829bd 100644 --- a/sql/examples/ha_tina.cc +++ b/sql/examples/ha_tina.cc @@ -234,6 +234,16 @@ static int free_share(TINA_SHARE *share) DBUG_RETURN(result_code); } +bool tina_end() +{ + if (tina_init) + { + hash_free(&tina_open_tables); + VOID(pthread_mutex_destroy(&tina_mutex)); + } + tina_init= 0; + return FALSE; +} /* Finds the end of a line. diff --git a/sql/examples/ha_tina.h b/sql/examples/ha_tina.h index 5679d77a4dc..1ccb3418771 100644 --- a/sql/examples/ha_tina.h +++ b/sql/examples/ha_tina.h @@ -126,3 +126,6 @@ public: int find_current_row(byte *buf); int chain_append(); }; + +bool tina_end(); + diff --git a/sql/handler.cc b/sql/handler.cc index 5f8fa33fecc..41fb3a31ddc 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -598,6 +598,10 @@ int ha_panic(enum ha_panic_function flag) #ifdef HAVE_ARCHIVE_DB if (have_archive_db == SHOW_OPTION_YES) error|= archive_db_end(); +#endif +#ifdef HAVE_CSV_DB + if (have_csv_db == SHOW_OPTION_YES) + error|= tina_end(); #endif if (ha_finish_errors()) error= 1;