summaryrefslogtreecommitdiff
path: root/sql/sp_head.cc
diff options
context:
space:
mode:
authorunknown <malff/marcsql@weblab.(none)>2007-03-07 09:53:46 -0700
committerunknown <malff/marcsql@weblab.(none)>2007-03-07 09:53:46 -0700
commita6131b85c0a938c2ba951ca5bfd772ec94d76d06 (patch)
tree3329dd6104f87fa278268a64a1aaa98a05ac1b4e /sql/sp_head.cc
parent4d6e16f284d9699307461b0081269bf4ce8be87e (diff)
downloadmariadb-git-a6131b85c0a938c2ba951ca5bfd772ec94d76d06.tar.gz
Bug 8407, post review cleanup: use instr::get_cont_dest() to get the instruction
continuation instruction, for CONTINUE exception handlers. sql/sp_head.cc: Post review cleanup: use instr::get_cont_dest() to get the instruction continuation instruction, for CONTINUE exception handlers. sql/sp_head.h: Post review cleanup: use instr::get_cont_dest() to get the instruction continuation instruction, for CONTINUE exception handlers.
Diffstat (limited to 'sql/sp_head.cc')
-rw-r--r--sql/sp_head.cc20
1 files changed, 7 insertions, 13 deletions
diff --git a/sql/sp_head.cc b/sql/sp_head.cc
index baeedc1c9b3..c1643f0f82e 100644
--- a/sql/sp_head.cc
+++ b/sql/sp_head.cc
@@ -1078,7 +1078,7 @@ sp_head::execute(THD *thd)
case SP_HANDLER_CONTINUE:
thd->restore_active_arena(&execute_arena, &backup_arena);
thd->set_n_backup_active_arena(&execute_arena, &backup_arena);
- ctx->push_hstack(ip);
+ ctx->push_hstack(i->get_cont_dest());
// Fall through
default:
ip= hip;
@@ -2394,7 +2394,7 @@ sp_lex_keeper::reset_lex_and_exec_core(THD *thd, uint *nextp,
reinit_stmt_before_use(thd, m_lex);
if (open_tables)
- res= instr->exec_open_and_lock_tables(thd, m_lex->query_tables, nextp);
+ res= instr->exec_open_and_lock_tables(thd, m_lex->query_tables);
if (!res)
res= instr->exec_core(thd, nextp);
@@ -2443,8 +2443,7 @@ sp_lex_keeper::reset_lex_and_exec_core(THD *thd, uint *nextp,
sp_instr class functions
*/
-int sp_instr::exec_open_and_lock_tables(THD *thd, TABLE_LIST *tables,
- uint *nextp)
+int sp_instr::exec_open_and_lock_tables(THD *thd, TABLE_LIST *tables)
{
int result;
@@ -2454,19 +2453,16 @@ int sp_instr::exec_open_and_lock_tables(THD *thd, TABLE_LIST *tables,
*/
if (check_table_access(thd, SELECT_ACL, tables, 0)
|| open_and_lock_tables(thd, tables))
- {
- get_cont_dest(nextp);
result= -1;
- }
else
result= 0;
return result;
}
-void sp_instr::get_cont_dest(uint *nextp)
+uint sp_instr::get_cont_dest()
{
- *nextp= m_ip+1;
+ return (m_ip+1);
}
@@ -2654,9 +2650,9 @@ sp_instr_set_trigger_field::print(String *str)
sp_instr_opt_meta
*/
-void sp_instr_opt_meta::get_cont_dest(uint *nextp)
+uint sp_instr_opt_meta::get_cont_dest()
{
- *nextp= m_cont_dest;
+ return m_cont_dest;
}
@@ -2748,7 +2744,6 @@ sp_instr_jump_if_not::exec_core(THD *thd, uint *nextp)
if (! it)
{
res= -1;
- *nextp = m_cont_dest;
}
else
{
@@ -3317,7 +3312,6 @@ sp_instr_set_case_expr::exec_core(THD *thd, uint *nextp)
spcont->clear_handler();
thd->spcont= spcont;
}
- *nextp= m_cont_dest; /* For continue handler */
}
else
*nextp= m_ip+1;