summaryrefslogtreecommitdiff
path: root/sql/sys_vars.cc
diff options
context:
space:
mode:
authorKristian Nielsen <knielsen@knielsen-hq.org>2017-04-20 16:19:01 +0200
committerKristian Nielsen <knielsen@knielsen-hq.org>2017-04-21 10:30:17 +0200
commit8953c7e48426671f8fb3a68cae22eb7a00cfee61 (patch)
tree484da6ca719b02bbf8d5fd6f199a7b85e84e297a /sql/sys_vars.cc
parent00eebb22435c871bbe9938582d96e6a3d1c00861 (diff)
downloadmariadb-git-8953c7e48426671f8fb3a68cae22eb7a00cfee61.tar.gz
MDEV-12179: Per-engine mysql.gtid_slave_pos table
Intermediate commit. Fix engine list lifetime for sys_var_pluginlist. The Sys_var class assumes that some operations can be done without explicitly freeing resources, for example default_value_ptr(). Thus, methods (like Sys_var_pluginlist::do_check) need to generally work with temporary lists, which are registered in the THD to be freed/unlocked automatically. And do_update() needs to make a permanent copy to store in the global variable.
Diffstat (limited to 'sql/sys_vars.cc')
-rw-r--r--sql/sys_vars.cc5
1 files changed, 0 insertions, 5 deletions
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
index 8f0a081acc7..84b88f84bbf 100644
--- a/sql/sys_vars.cc
+++ b/sql/sys_vars.cc
@@ -3541,11 +3541,6 @@ check_gtid_pos_auto_engines(sys_var *self, THD *thd, set_var *var)
if (running)
err= true;
}
- if (err && var->save_result.plugins)
- {
- free_engine_list(var->save_result.plugins);
- var->save_result.plugins= NULL;
- }
return err;
}