diff options
author | unknown <konstantin@oak.local> | 2003-12-23 15:38:19 +0300 |
---|---|---|
committer | unknown <konstantin@oak.local> | 2003-12-23 15:38:19 +0300 |
commit | 923af04fc1598cdbbe006b2995dfba5fd5de2ff8 (patch) | |
tree | e34c4d2278591bdb49287ed082529083e721e60e | |
parent | 37d11ff85869388e71659c298816e9ff390a2ac3 (diff) | |
download | mariadb-git-923af04fc1598cdbbe006b2995dfba5fd5de2ff8.tar.gz |
short patch for bug #2184 'Prepared statements in embedded library was
broken with recent changes' (attempt 2).
Adding Statement_core is better because:
- set_statement() code is shorter and you don't need to modify it when adding
new members to Statement_core
- a bit faster (you don't have virtual call and don't free_root() twice)
Do that short patch instead in hope that set_statement() will be sooner or
later removed entirely
sql/sql_class.cc:
short patch for bug #2184 'Prepared statements in embedded library was
broken with recent changes'
sql/sql_class.h:
short patch for bug #2184 'Prepared statements in embedded library
was broken with recent changes'
-rw-r--r-- | sql/sql_class.cc | 2 | ||||
-rw-r--r-- | sql/sql_class.h | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 12f0cc4ca72..60220ffc889 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -336,6 +336,8 @@ THD::~THD() #ifndef DBUG_OFF dbug_sentry = THD_SENTRY_GONE; #endif + /* Reset stmt_backup.mem_root to not double-free memory from thd.mem_root */ + init_alloc_root(&stmt_backup.mem_root, 0, 0); DBUG_VOID_RETURN; } diff --git a/sql/sql_class.h b/sql/sql_class.h index c1cd65edf76..5390e8a4ac4 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -582,8 +582,7 @@ public: Statement_map stmt_map; /* keeps THD state while it is used for active statement - Note, that double free_root() is safe, so we don't need to do any - special cleanup for it in THD destructor. + Note: we perform special cleanup for it in THD destructor. */ Statement stmt_backup; /* |