summaryrefslogtreecommitdiff
path: root/sql/sp_head.h
diff options
context:
space:
mode:
authorJon Olav Hauglid <jon.hauglid@oracle.com>2012-01-09 11:33:26 +0100
committerJon Olav Hauglid <jon.hauglid@oracle.com>2012-01-09 11:33:26 +0100
commitf621aa902074d6d28f42ffc4e7ce2e0c594c0ab6 (patch)
treea7aa2696cedf959b55bf3d17f88c037baee0e837 /sql/sp_head.h
parentdfc75197f933c9eebef8ecaf17e23a22a0259612 (diff)
parentb8291e2b60b311b621b15aff1dfec817da1bbf4c (diff)
downloadmariadb-git-f621aa902074d6d28f42ffc4e7ce2e0c594c0ab6.tar.gz
Merge from mysql-5.1-security to mysql-5.5-security
Text conflict in sql/sql_yacc.yy
Diffstat (limited to 'sql/sp_head.h')
-rw-r--r--sql/sp_head.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/sql/sp_head.h b/sql/sp_head.h
index 0f6fddc75f0..06db7b45a05 100644
--- a/sql/sp_head.h
+++ b/sql/sp_head.h
@@ -1023,7 +1023,7 @@ class sp_instr_hpush_jump : public sp_instr_jump
public:
sp_instr_hpush_jump(uint ip, sp_pcontext *ctx, int htype, uint fp)
- : sp_instr_jump(ip, ctx), m_type(htype), m_frame(fp)
+ : sp_instr_jump(ip, ctx), m_type(htype), m_frame(fp), m_opt_hpop(0)
{
m_cond.empty();
}
@@ -1045,6 +1045,15 @@ public:
return m_ip;
}
+ virtual void backpatch(uint dest, sp_pcontext *dst_ctx)
+ {
+ DBUG_ASSERT(!m_dest || !m_opt_hpop);
+ if (!m_dest)
+ m_dest= dest;
+ else
+ m_opt_hpop= dest;
+ }
+
inline void add_condition(struct sp_cond_type *cond)
{
m_cond.push_front(cond);
@@ -1054,6 +1063,7 @@ private:
int m_type; ///< Handler type
uint m_frame;
+ uint m_opt_hpop; // hpop marking end of handler scope.
List<struct sp_cond_type> m_cond;
}; // class sp_instr_hpush_jump : public sp_instr_jump