diff options
author | bell@sanja.is.com.ua <> | 2004-05-26 14:28:35 +0300 |
---|---|---|
committer | bell@sanja.is.com.ua <> | 2004-05-26 14:28:35 +0300 |
commit | e822f61d7685659f3a11cedec6143dba7c747df1 (patch) | |
tree | a0eba338950bc31db0955358da927a3d7664d5a0 /sql/sp_head.h | |
parent | 5e83cf32a6c933621c46e9efc8644ffa9fc6275e (diff) | |
download | mariadb-git-e822f61d7685659f3a11cedec6143dba7c747df1.tar.gz |
cleunup items of instruction after every instruction execution
Diffstat (limited to 'sql/sp_head.h')
-rw-r--r-- | sql/sp_head.h | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/sql/sp_head.h b/sql/sp_head.h index 3906d8c2bc8..e9ec7068783 100644 --- a/sql/sp_head.h +++ b/sql/sp_head.h @@ -108,7 +108,7 @@ public: static void * operator new(size_t size); - static void + static void operator delete(void *ptr, size_t size); sp_head(); @@ -123,7 +123,7 @@ public: int create(THD *thd); - + virtual ~sp_head(); // Free memory @@ -142,11 +142,8 @@ public: int show_create_function(THD *thd); - inline void - add_instr(sp_instr *i) - { - insert_dynamic(&m_instr, (gptr)&i); - } + void + add_instr(sp_instr *instr); inline uint instructions() @@ -249,13 +246,15 @@ class sp_instr : public Sql_alloc public: + Item *free_list; // My Items + // Should give each a name or type code for debugging purposes? sp_instr(uint ip) - : Sql_alloc(), m_ip(ip) + :Sql_alloc(), free_list(0), m_ip(ip) {} virtual ~sp_instr() - {} + { free_items(free_list); } // Execute this instrution. '*nextp' will be set to the index of the next // instruction to execute. (For most instruction this will be the |