mirror of
https://github.com/MariaDB/server.git
synced 2025-03-30 20:05:38 +02:00
Correct TRASH() macro usage
TRASH was mapped to TRASH_FREE and was supposed to be used for memory that should not be accessed anymore, while TRASH_ALLOC() is to be used for uninitialized but to-be-used memory. But sometimes TRASH() was used in the latter sense. Remove TRASH() macro, always use explicit TRASH_ALLOC() or TRASH_FREE().
This commit is contained in:
parent
204cb85aab
commit
22ae3843db
17 changed files with 17 additions and 36 deletions
|
@ -45,4 +45,3 @@
|
|||
#endif
|
||||
#define TRASH_ALLOC(A,B) TRASH_FILL(A,B,0xA5)
|
||||
#define TRASH_FREE(A,B) TRASH_FILL(A,B,0x8F)
|
||||
#define TRASH(A,B) TRASH_FREE(A,B)
|
||||
|
|
|
@ -293,7 +293,7 @@ void *multi_alloc_root(MEM_ROOT *root, ...)
|
|||
DBUG_RETURN((void*) start);
|
||||
}
|
||||
|
||||
#define TRASH_MEM(X) TRASH(((char*)(X) + ((X)->size-(X)->left)), (X)->left)
|
||||
#define TRASH_MEM(X) TRASH_FREE(((char*)(X) + ((X)->size-(X)->left)), (X)->left)
|
||||
|
||||
/* Mark all data in blocks free for reusage */
|
||||
|
||||
|
|
|
@ -423,8 +423,6 @@ void my_thread_end(void)
|
|||
if (--THR_thread_count == 0)
|
||||
mysql_cond_signal(&THR_COND_threads);
|
||||
mysql_mutex_unlock(&THR_LOCK_threads);
|
||||
|
||||
TRASH(tmp, sizeof(*tmp));
|
||||
free(tmp);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -208,7 +208,7 @@ class Field
|
|||
public:
|
||||
static void *operator new(size_t size) throw ()
|
||||
{ return sql_alloc(size); }
|
||||
static void operator delete(void *ptr_arg, size_t size) { TRASH(ptr_arg, size); }
|
||||
static void operator delete(void *ptr_arg, size_t size) { TRASH_FREE(ptr_arg, size); }
|
||||
|
||||
uchar *ptr; // Position to field in record
|
||||
/**
|
||||
|
|
|
@ -580,7 +580,7 @@ public:
|
|||
{ return sql_alloc(size); }
|
||||
static void *operator new(size_t size, MEM_ROOT *mem_root) throw ()
|
||||
{ return alloc_root(mem_root, size); }
|
||||
static void operator delete(void *ptr,size_t size) { TRASH(ptr, size); }
|
||||
static void operator delete(void *ptr,size_t size) { TRASH_FREE(ptr, size); }
|
||||
static void operator delete(void *ptr, MEM_ROOT *mem_root) {}
|
||||
|
||||
enum Type {FIELD_ITEM= 0, FUNC_ITEM, SUM_FUNC_ITEM, STRING_ITEM,
|
||||
|
|
|
@ -2651,7 +2651,7 @@ public:
|
|||
/* Table read plans are allocated on MEM_ROOT and are never deleted */
|
||||
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) { TRASH(ptr, size); }
|
||||
static void operator delete(void *ptr,size_t size) { TRASH_FREE(ptr, size); }
|
||||
static void operator delete(void *ptr, MEM_ROOT *mem_root) { /* Never called */ }
|
||||
virtual ~TABLE_READ_PLAN() {} /* Remove gcc warning */
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ void Server_side_cursor::operator delete(void *ptr, size_t size)
|
|||
MEM_ROOT own_root= *cursor->mem_root;
|
||||
|
||||
DBUG_ENTER("Server_side_cursor::operator delete");
|
||||
TRASH(ptr, size);
|
||||
TRASH_FREE(ptr, size);
|
||||
/*
|
||||
If this cursor has never been opened mem_root is empty. Otherwise
|
||||
mem_root points to the memory the cursor object was allocated in.
|
||||
|
|
|
@ -548,7 +548,7 @@ public:
|
|||
}
|
||||
static void *operator new(size_t size, MEM_ROOT *mem_root) throw ()
|
||||
{ return (void*) alloc_root(mem_root, (uint) size); }
|
||||
static void operator delete(void *ptr,size_t size) { TRASH(ptr, size); }
|
||||
static void operator delete(void *ptr,size_t size) { TRASH_FREE(ptr, size); }
|
||||
static void operator delete(void *ptr, MEM_ROOT *mem_root) {}
|
||||
|
||||
// Ensures that at least all members used during cleanup() are initialized.
|
||||
|
@ -2949,7 +2949,7 @@ struct st_lex_local: public LEX
|
|||
return (void*) alloc_root(mem_root, (uint) size);
|
||||
}
|
||||
static void operator delete(void *ptr,size_t size)
|
||||
{ TRASH(ptr, size); }
|
||||
{ TRASH_FREE(ptr, size); }
|
||||
static void operator delete(void *ptr, MEM_ROOT *mem_root)
|
||||
{ /* Never called */ }
|
||||
};
|
||||
|
|
|
@ -84,7 +84,7 @@ public:
|
|||
start= start_arg;
|
||||
end= end_arg;
|
||||
if (end != start)
|
||||
TRASH(start, end - start);
|
||||
TRASH_ALLOC(start, end - start);
|
||||
reset();
|
||||
}
|
||||
|
||||
|
@ -224,7 +224,7 @@ public:
|
|||
{
|
||||
DBUG_ASSERT(unused_end >= unused_start);
|
||||
DBUG_ASSERT(end == unused_start);
|
||||
TRASH(unused_start, unused_end - unused_start);
|
||||
TRASH_ALLOC(unused_start, unused_end - unused_start);
|
||||
end= unused_end;
|
||||
}
|
||||
/* Return pointer to start of the memory area that is occupied by the data */
|
||||
|
|
|
@ -41,12 +41,12 @@ public:
|
|||
{ return alloc_root(mem_root, size); }
|
||||
static void *operator new(size_t size, MEM_ROOT *mem_root) throw ()
|
||||
{ return alloc_root(mem_root, size); }
|
||||
static void operator delete(void *ptr, size_t size) { TRASH(ptr, size); }
|
||||
static void operator delete(void *ptr, size_t size) { TRASH_FREE(ptr, size); }
|
||||
static void operator delete(void *ptr, MEM_ROOT *mem_root)
|
||||
{ /* never called */ }
|
||||
static void operator delete[](void *ptr, MEM_ROOT *mem_root)
|
||||
{ /* never called */ }
|
||||
static void operator delete[](void *ptr, size_t size) { TRASH(ptr, size); }
|
||||
static void operator delete[](void *ptr, size_t size) { TRASH_FREE(ptr, size); }
|
||||
#ifdef HAVE_valgrind
|
||||
bool dummy;
|
||||
inline Sql_alloc() :dummy(0) {}
|
||||
|
|
|
@ -267,7 +267,7 @@ public:
|
|||
static void *operator new(size_t size, MEM_ROOT *mem_root)
|
||||
{ return (void*) alloc_root(mem_root, size); }
|
||||
static void operator delete(void *ptr_arg,size_t size)
|
||||
{ TRASH(ptr_arg, size); }
|
||||
{ TRASH_FREE(ptr_arg, size); }
|
||||
|
||||
sys_var_pluginvar(sys_var_chain *chain, const char *name_arg,
|
||||
struct st_mysql_sys_var *plugin_var_arg,
|
||||
|
|
|
@ -11530,7 +11530,7 @@ public:
|
|||
}
|
||||
static void operator delete(void *ptr __attribute__((unused)),
|
||||
size_t size __attribute__((unused)))
|
||||
{ TRASH(ptr, size); }
|
||||
{ TRASH_FREE(ptr, size); }
|
||||
|
||||
Item *and_level;
|
||||
Item_func *cmp_func;
|
||||
|
|
|
@ -2111,7 +2111,7 @@ public:
|
|||
}
|
||||
static void operator delete(void *ptr __attribute__((unused)),
|
||||
size_t size __attribute__((unused)))
|
||||
{ TRASH(ptr, size); }
|
||||
{ TRASH_FREE(ptr, size); }
|
||||
|
||||
ulong thread_id;
|
||||
time_t start_time;
|
||||
|
|
|
@ -102,7 +102,7 @@ public:
|
|||
{
|
||||
(void) ptr_arg;
|
||||
(void) size;
|
||||
TRASH(ptr_arg, size);
|
||||
TRASH_FREE(ptr_arg, size);
|
||||
}
|
||||
static void operator delete(void *, MEM_ROOT *)
|
||||
{ /* never called */ }
|
||||
|
|
|
@ -935,22 +935,6 @@ bool st_select_lex_unit::cleanup()
|
|||
void st_select_lex_unit::reinit_exec_mechanism()
|
||||
{
|
||||
prepared= optimized= executed= 0;
|
||||
#ifndef DBUG_OFF
|
||||
if (is_union())
|
||||
{
|
||||
List_iterator_fast<Item> it(item_list);
|
||||
Item *field;
|
||||
while ((field= it++))
|
||||
{
|
||||
/*
|
||||
we can't cleanup here, because it broke link to temporary table field,
|
||||
but have to drop fixed flag to allow next fix_field of this field
|
||||
during re-executing
|
||||
*/
|
||||
field->fixed= 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -3991,7 +3991,7 @@ void TABLE::init(THD *thd, TABLE_LIST *tl)
|
|||
DBUG_ASSERT(key_read == 0);
|
||||
|
||||
/* mark the record[0] uninitialized */
|
||||
TRASH(record[0], s->reclength);
|
||||
TRASH_ALLOC(record[0], s->reclength);
|
||||
|
||||
/*
|
||||
Initialize the null marker bits, to ensure that if we are doing a read
|
||||
|
|
|
@ -169,7 +169,7 @@ public:
|
|||
static void *operator new(size_t size, MEM_ROOT *mem_root) throw ()
|
||||
{ return alloc_root(mem_root, size); }
|
||||
static void operator delete(void *ptr, size_t size)
|
||||
{ TRASH(ptr, size); }
|
||||
{ TRASH_FREE(ptr, size); }
|
||||
|
||||
virtual int query(const char *buffer, uint length)=0;
|
||||
virtual FEDERATEDX_IO_RESULT *store_result()=0;
|
||||
|
|
Loading…
Add table
Reference in a new issue