diff options
author | unknown <serg@serg.mylan> | 2004-11-28 15:53:17 +0100 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2004-11-28 15:53:17 +0100 |
commit | 30db8445c10b0ae44077f1b2739a3bb07b4735a4 (patch) | |
tree | 46d7ffed3e41aa68db463fe32568cb1f56dc23f2 /sql/item.h | |
parent | 7a1ffc062ecfafe9f1f7d4c15d7c8cc9815a7d3d (diff) | |
download | mariadb-git-30db8445c10b0ae44077f1b2739a3bb07b4735a4.tar.gz |
protection: TRASH in delete
fixed a bug that it discovered
include/my_sys.h:
move TRASH to my_sys.h from sql_list.h
sql/field.h:
use TRASH macro
sql/item.h:
TRASH in delete
sql/item_func.h:
never delete item's manually!
sql/opt_range.cc:
TRASH in delete
sql/sql_lex.h:
TRASH in delete
sql/sql_list.h:
move TRASH to my_sys.h from sql_list.h
sql/sql_parse.cc:
don't use properties of deleted objects (even when it's safe)
sql/sql_select.cc:
TRASH in delete
sql/sql_show.cc:
TRASH in delete
sql/sql_string.h:
TRASH in delete
Diffstat (limited to 'sql/item.h')
-rw-r--r-- | sql/item.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sql/item.h b/sql/item.h index 8f6d6581884..2c2978e841c 100644 --- a/sql/item.h +++ b/sql/item.h @@ -120,8 +120,9 @@ public: static void *operator new(size_t size) {return (void*) sql_alloc((uint) size); } static void *operator new(size_t size, MEM_ROOT *mem_root) { return (void*) alloc_root(mem_root, (uint) size); } - static void operator delete(void *ptr,size_t size) {} - static void operator delete(void *ptr,size_t size, MEM_ROOT *mem_root) {} + static void operator delete(void *ptr,size_t size) { TRASH(ptr, size); } + static void operator delete(void *ptr,size_t size, MEM_ROOT *mem_root) + { TRASH(ptr, size); } enum Type {FIELD_ITEM, FUNC_ITEM, SUM_FUNC_ITEM, STRING_ITEM, INT_ITEM, REAL_ITEM, NULL_ITEM, VARBIN_ITEM, |