summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorDavi Arnaut <Davi.Arnaut@Sun.COM>2010-07-08 18:20:08 -0300
committerDavi Arnaut <Davi.Arnaut@Sun.COM>2010-07-08 18:20:08 -0300
commitf56dd32bf7c5b8a8cf35984f39f1a253b75945ff (patch)
tree6c88c3c07b30acb464ca8bf81bbef916216da616 /storage
parentd3b01fef18b20f3ac589f2ecc95d64326570583f (diff)
downloadmariadb-git-f56dd32bf7c5b8a8cf35984f39f1a253b75945ff.tar.gz
Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Essentially, the problem is that safemalloc is excruciatingly slow as it checks all allocated blocks for overrun at each memory management primitive, yielding a almost exponential slowdown for the memory management functions (malloc, realloc, free). The overrun check basically consists of verifying some bytes of a block for certain magic keys, which catches some simple forms of overrun. Another minor problem is violation of aliasing rules and that its own internal list of blocks is prone to corruption. Another issue with safemalloc is rather the maintenance cost as the tool has a significant impact on the server code. Given the magnitude of memory debuggers available nowadays, especially those that are provided with the platform malloc implementation, maintenance of a in-house and largely obsolete memory debugger becomes a burden that is not worth the effort due to its slowness and lack of support for detecting more common forms of heap corruption. Since there are third-party tools that can provide the same functionality at a lower or comparable performance cost, the solution is to simply remove safemalloc. Third-party tools can provide the same functionality at a lower or comparable performance cost. The removal of safemalloc also allows a simplification of the malloc wrappers, removing quite a bit of kludge: redefinition of my_malloc, my_free and the removal of the unused second argument of my_free. Since free() always check whether the supplied pointer is null, redudant checks are also removed. Also, this patch adds unit testing for my_malloc and moves my_realloc implementation into the same file as the other memory allocation primitives. client/mysqldump.c: Pass my_free directly as its signature is compatible with the callback type -- which wasn't the case for free_table_ent.
Diffstat (limited to 'storage')
-rw-r--r--storage/archive/archive_reader.c6
-rw-r--r--storage/archive/ha_archive.cc15
-rw-r--r--storage/blackhole/ha_blackhole.cc4
-rw-r--r--storage/csv/ha_tina.cc8
-rw-r--r--storage/csv/ha_tina.h2
-rw-r--r--storage/csv/transparent_file.cc2
-rw-r--r--storage/example/ha_example.cc4
-rw-r--r--storage/heap/ha_heap.cc4
-rw-r--r--storage/heap/hp_block.c2
-rw-r--r--storage/heap/hp_close.c2
-rw-r--r--storage/heap/hp_create.c6
-rw-r--r--storage/heap/hp_rename.c2
-rw-r--r--storage/ibmdb2i/db2i_constraints.cc2
-rw-r--r--storage/ibmdb2i/db2i_conversion.cc6
-rw-r--r--storage/ibmdb2i/db2i_file.cc15
-rw-r--r--storage/ibmdb2i/db2i_file.h2
-rw-r--r--storage/ibmdb2i/db2i_global.h2
-rw-r--r--storage/ibmdb2i/db2i_ileBridge.cc4
-rw-r--r--storage/ibmdb2i/db2i_ileBridge.h2
-rw-r--r--storage/ibmdb2i/ha_ibmdb2i.cc8
-rw-r--r--storage/innobase/handler/ha_innodb.cc33
-rw-r--r--storage/myisam/ft_boolean_search.c4
-rw-r--r--storage/myisam/ft_nlq_search.c2
-rw-r--r--storage/myisam/ft_stopwords.c6
-rw-r--r--storage/myisam/ha_myisam.cc4
-rw-r--r--storage/myisam/mi_check.c40
-rw-r--r--storage/myisam/mi_close.c12
-rw-r--r--storage/myisam/mi_create.c4
-rw-r--r--storage/myisam/mi_dynrec.c4
-rw-r--r--storage/myisam/mi_open.c4
-rw-r--r--storage/myisam/mi_packrec.c4
-rw-r--r--storage/myisam/mi_preload.c4
-rw-r--r--storage/myisam/mi_test2.c5
-rw-r--r--storage/myisam/mi_write.c4
-rw-r--r--storage/myisam/myisamchk.c7
-rw-r--r--storage/myisam/myisamlog.c12
-rw-r--r--storage/myisam/myisampack.c37
-rw-r--r--storage/myisam/rt_index.c2
-rw-r--r--storage/myisam/sort.c22
-rw-r--r--storage/myisammrg/ha_myisammrg.cc4
-rw-r--r--storage/myisammrg/myrg_close.c4
-rw-r--r--storage/myisammrg/myrg_open.c8
-rw-r--r--storage/ndb/config/win-lib.am2
-rw-r--r--storage/ndb/config/win-prg.am2
-rw-r--r--storage/ndb/include/util/NdbAutoPtr.hpp4
-rw-r--r--storage/ndb/src/mgmapi/mgmapi.cpp6
-rw-r--r--storage/ndb/src/mgmapi/ndb_logevent.cpp2
-rw-r--r--storage/ndb/test/ndbapi/testIndexStat.cpp6
-rw-r--r--storage/ndb/tools/restore/consumer_restore.cpp4
-rw-r--r--storage/perfschema/pfs.cc4
50 files changed, 166 insertions, 188 deletions
diff --git a/storage/archive/archive_reader.c b/storage/archive/archive_reader.c
index bad02835d86..ce4be92a521 100644
--- a/storage/archive/archive_reader.c
+++ b/storage/archive/archive_reader.c
@@ -201,7 +201,7 @@ int main(int argc, char *argv[])
ptr= (char *)my_malloc(sizeof(char) * reader_handle.frm_length, MYF(0));
azread_frm(&reader_handle, ptr);
azwrite_frm(&writer_handle, ptr, reader_handle.frm_length);
- my_free(ptr, MYF(0));
+ my_free(ptr);
}
if (reader_handle.comment_length)
@@ -210,7 +210,7 @@ int main(int argc, char *argv[])
ptr= (char *)my_malloc(sizeof(char) * reader_handle.comment_length, MYF(0));
azread_comment(&reader_handle, ptr);
azwrite_comment(&writer_handle, ptr, reader_handle.comment_length);
- my_free(ptr, MYF(0));
+ my_free(ptr);
}
while ((read= azread(&reader_handle, (uchar *)size_buffer,
@@ -265,7 +265,7 @@ int main(int argc, char *argv[])
azread_frm(&reader_handle, ptr);
my_write(frm_file, (uchar*) ptr, reader_handle.frm_length, MYF(0));
my_close(frm_file, MYF(0));
- my_free(ptr, MYF(0));
+ my_free(ptr);
}
end:
diff --git a/storage/archive/ha_archive.cc b/storage/archive/ha_archive.cc
index 2bcfc3ff672..63848370ff1 100644
--- a/storage/archive/ha_archive.cc
+++ b/storage/archive/ha_archive.cc
@@ -387,7 +387,7 @@ ARCHIVE_SHARE *ha_archive::get_share(const char *table_name, int *rc)
{
*rc= my_errno ? my_errno : -1;
mysql_mutex_unlock(&archive_mutex);
- my_free(share, MYF(0));
+ my_free(share);
DBUG_RETURN(NULL);
}
stats.auto_increment_value= archive_tmp.auto_increment + 1;
@@ -447,7 +447,7 @@ int ha_archive::free_share()
if (azclose(&(share->archive_write)))
rc= 1;
}
- my_free((uchar*) share, MYF(0));
+ my_free(share);
}
mysql_mutex_unlock(&archive_mutex);
@@ -706,7 +706,7 @@ int ha_archive::create(const char *name, TABLE *table_arg,
{
my_read(frm_file, frm_ptr, file_stat.st_size, MYF(0));
azwrite_frm(&create_stream, (char *)frm_ptr, file_stat.st_size);
- my_free((uchar*)frm_ptr, MYF(0));
+ my_free(frm_ptr);
}
}
my_close(frm_file, MYF(0));
@@ -932,8 +932,7 @@ int ha_archive::write_row(uchar *buf)
rc= real_write_row(buf, &(share->archive_write));
error:
mysql_mutex_unlock(&share->mutex);
- if (read_buf)
- my_free((uchar*) read_buf, MYF(0));
+ my_free(read_buf);
DBUG_RETURN(rc);
}
@@ -1696,7 +1695,7 @@ archive_record_buffer *ha_archive::create_record_buffer(unsigned int length)
if (!(r->buffer= (uchar*) my_malloc(r->length,
MYF(MY_WME))))
{
- my_free((char*) r, MYF(MY_ALLOW_ZERO_PTR));
+ my_free(r);
DBUG_RETURN(NULL); /* purecov: inspected */
}
@@ -1706,8 +1705,8 @@ archive_record_buffer *ha_archive::create_record_buffer(unsigned int length)
void ha_archive::destroy_record_buffer(archive_record_buffer *r)
{
DBUG_ENTER("ha_archive::destroy_record_buffer");
- my_free((char*) r->buffer, MYF(MY_ALLOW_ZERO_PTR));
- my_free((char*) r, MYF(MY_ALLOW_ZERO_PTR));
+ my_free(r->buffer);
+ my_free(r);
DBUG_VOID_RETURN;
}
diff --git a/storage/blackhole/ha_blackhole.cc b/storage/blackhole/ha_blackhole.cc
index 7ec60aad88a..6591c3a2c78 100644
--- a/storage/blackhole/ha_blackhole.cc
+++ b/storage/blackhole/ha_blackhole.cc
@@ -335,7 +335,7 @@ static st_blackhole_share *get_share(const char *table_name)
if (my_hash_insert(&blackhole_open_tables, (uchar*) share))
{
- my_free((uchar*) share, MYF(0));
+ my_free(share);
share= NULL;
goto error;
}
@@ -360,7 +360,7 @@ static void free_share(st_blackhole_share *share)
static void blackhole_free_key(st_blackhole_share *share)
{
thr_lock_delete(&share->lock);
- my_free((uchar*) share, MYF(0));
+ my_free(share);
}
static uchar* blackhole_get_key(st_blackhole_share *share, size_t *length,
diff --git a/storage/csv/ha_tina.cc b/storage/csv/ha_tina.cc
index 11edf690f2a..30c4c4d58ca 100644
--- a/storage/csv/ha_tina.cc
+++ b/storage/csv/ha_tina.cc
@@ -251,7 +251,7 @@ static TINA_SHARE *get_share(const char *table_name, TABLE *table)
error:
mysql_mutex_unlock(&tina_mutex);
- my_free((uchar*) share, MYF(0));
+ my_free(share);
return NULL;
}
@@ -429,7 +429,7 @@ static int free_share(TINA_SHARE *share)
my_hash_delete(&tina_open_tables, (uchar*) share);
thr_lock_delete(&share->lock);
mysql_mutex_destroy(&share->mutex);
- my_free((uchar*) share, MYF(0));
+ my_free(share);
}
mysql_mutex_unlock(&tina_mutex);
@@ -1529,7 +1529,7 @@ int ha_tina::repair(THD* thd, HA_CHECK_OPT* check_opt)
free_root(&blobroot, MYF(0));
- my_free((char*)buf, MYF(0));
+ my_free(buf);
if (rc == HA_ERR_END_OF_FILE)
{
@@ -1735,7 +1735,7 @@ int ha_tina::check(THD* thd, HA_CHECK_OPT* check_opt)
free_root(&blobroot, MYF(0));
- my_free((char*)buf, MYF(0));
+ my_free(buf);
thd_proc_info(thd, old_proc_info);
if ((rc != HA_ERR_END_OF_FILE) || count)
diff --git a/storage/csv/ha_tina.h b/storage/csv/ha_tina.h
index 7bb80170e87..845b50e3869 100644
--- a/storage/csv/ha_tina.h
+++ b/storage/csv/ha_tina.h
@@ -95,7 +95,7 @@ public:
~ha_tina()
{
if (chain_alloced)
- my_free(chain, 0);
+ my_free(chain);
if (file_buff)
delete file_buff;
free_root(&blobroot, MYF(0));
diff --git a/storage/csv/transparent_file.cc b/storage/csv/transparent_file.cc
index 44ca2df026f..f92746c7b93 100644
--- a/storage/csv/transparent_file.cc
+++ b/storage/csv/transparent_file.cc
@@ -29,7 +29,7 @@ Transparent_file::Transparent_file() : lower_bound(0), buff_size(IO_SIZE)
Transparent_file::~Transparent_file()
{
- my_free((uchar*)buff, MYF(MY_ALLOW_ZERO_PTR));
+ my_free(buff);
}
void Transparent_file::init_buff(File filedes_arg)
diff --git a/storage/example/ha_example.cc b/storage/example/ha_example.cc
index 2fbb17e46bd..899f55a33f7 100644
--- a/storage/example/ha_example.cc
+++ b/storage/example/ha_example.cc
@@ -232,7 +232,7 @@ static EXAMPLE_SHARE *get_share(const char *table_name, TABLE *table)
error:
mysql_mutex_destroy(&share->mutex);
- my_free(share, MYF(0));
+ my_free(share);
return NULL;
}
@@ -252,7 +252,7 @@ static int free_share(EXAMPLE_SHARE *share)
my_hash_delete(&example_open_tables, (uchar*) share);
thr_lock_delete(&share->lock);
mysql_mutex_destroy(&share->mutex);
- my_free(share, MYF(0));
+ my_free(share);
}
mysql_mutex_unlock(&example_mutex);
diff --git a/storage/heap/ha_heap.cc b/storage/heap/ha_heap.cc
index 541650bd5e8..350958f8230 100644
--- a/storage/heap/ha_heap.cc
+++ b/storage/heap/ha_heap.cc
@@ -112,7 +112,7 @@ int ha_heap::open(const char *name, int mode, uint test_if_locked)
create_info.pin_share= TRUE;
rc= heap_create(name, &create_info, &internal_share, &created_new_share);
- my_free((uchar*) create_info.keydef, MYF(0));
+ my_free(create_info.keydef);
if (rc)
goto end;
@@ -764,7 +764,7 @@ int ha_heap::create(const char *name, TABLE *table_arg,
hp_create_info.auto_increment= (create_info->auto_increment_value ?
create_info->auto_increment_value - 1 : 0);
error= heap_create(name, &hp_create_info, &internal_share, &created);
- my_free((uchar*) hp_create_info.keydef, MYF(0));
+ my_free(hp_create_info.keydef);
DBUG_ASSERT(file == 0);
return (error);
}
diff --git a/storage/heap/hp_block.c b/storage/heap/hp_block.c
index c622a9e52f8..7f6cc1ef90a 100644
--- a/storage/heap/hp_block.c
+++ b/storage/heap/hp_block.c
@@ -145,7 +145,7 @@ uchar *hp_free_level(HP_BLOCK *block, uint level, HP_PTRS *pos, uchar *last_pos)
}
if ((uchar*) pos != last_pos)
{
- my_free((uchar*) pos,MYF(0));
+ my_free(pos);
return last_pos;
}
return next_ptr; /* next memory position */
diff --git a/storage/heap/hp_close.c b/storage/heap/hp_close.c
index 49d8ec376bb..e5a826423db 100644
--- a/storage/heap/hp_close.c
+++ b/storage/heap/hp_close.c
@@ -46,6 +46,6 @@ int hp_close(register HP_INFO *info)
heap_open_list=list_delete(heap_open_list,&info->open_list);
if (!--info->s->open_count && info->s->delete_on_close)
hp_free(info->s); /* Table was deleted */
- my_free((uchar*) info,MYF(0));
+ my_free(info);
DBUG_RETURN(error);
}
diff --git a/storage/heap/hp_create.c b/storage/heap/hp_create.c
index cf0f5d5ba6d..bbf649c5e46 100644
--- a/storage/heap/hp_create.c
+++ b/storage/heap/hp_create.c
@@ -189,7 +189,7 @@ int heap_create(const char *name, HP_CREATE_INFO *create_info,
/* Must be allocated separately for rename to work */
if (!(share->name= my_strdup(name,MYF(0))))
{
- my_free((uchar*) share,MYF(0));
+ my_free(share);
goto err;
}
#ifdef THREAD
@@ -305,7 +305,7 @@ void hp_free(HP_SHARE *share)
thr_lock_delete(&share->lock);
mysql_mutex_destroy(&share->intern_lock);
#endif
- my_free((uchar*) share->name, MYF(0));
- my_free((uchar*) share, MYF(0));
+ my_free(share->name);
+ my_free(share);
return;
}
diff --git a/storage/heap/hp_rename.c b/storage/heap/hp_rename.c
index c4e8390cc43..cf0d2b2b387 100644
--- a/storage/heap/hp_rename.c
+++ b/storage/heap/hp_rename.c
@@ -33,7 +33,7 @@ int heap_rename(const char *old_name, const char *new_name)
mysql_mutex_unlock(&THR_LOCK_heap);
DBUG_RETURN(my_errno);
}
- my_free(info->name,MYF(0));
+ my_free(info->name);
info->name=name_buff;
}
mysql_mutex_unlock(&THR_LOCK_heap);
diff --git a/storage/ibmdb2i/db2i_constraints.cc b/storage/ibmdb2i/db2i_constraints.cc
index cc2821238b6..3afa12032d0 100644
--- a/storage/ibmdb2i/db2i_constraints.cc
+++ b/storage/ibmdb2i/db2i_constraints.cc
@@ -421,7 +421,7 @@ void ha_ibmdb2i::free_foreign_key_create_info(char* info)
if (info)
{
- my_free(info, MYF(0));
+ my_free(info);
}
DBUG_VOID_RETURN;
}
diff --git a/storage/ibmdb2i/db2i_conversion.cc b/storage/ibmdb2i/db2i_conversion.cc
index 9a85eb01c9b..71a30802bf9 100644
--- a/storage/ibmdb2i/db2i_conversion.cc
+++ b/storage/ibmdb2i/db2i_conversion.cc
@@ -292,7 +292,7 @@ static void get_field_default_value(Field *field,
if (iconv(iconvD, (char**)&tempIn, &ilen, &tempOut, &olen, &substitutedChars) < 0)
{
warning(current_thd, DB2I_ERR_WARN_COL_ATTRS, field->field_name);
- my_free(out, MYF(0));
+ my_free(out);
return;
}
// Now we process the converted string to represent it as
@@ -310,7 +310,7 @@ static void get_field_default_value(Field *field,
if (length > 16370)
{
warning(current_thd, DB2I_ERR_WARN_COL_ATTRS, field->field_name);
- my_free(out, MYF(0));
+ my_free(out);
return;
}
@@ -335,7 +335,7 @@ static void get_field_default_value(Field *field,
if (field->charset() == &my_charset_bin)
defaultClause.append(")");
- my_free(out, MYF(0));
+ my_free(out);
}
}
else
diff --git a/storage/ibmdb2i/db2i_file.cc b/storage/ibmdb2i/db2i_file.cc
index a16aa927527..2d83248eea7 100644
--- a/storage/ibmdb2i/db2i_file.cc
+++ b/storage/ibmdb2i/db2i_file.cc
@@ -280,12 +280,9 @@ void db2i_table::renameAssocFiles(const char* from, const char* to)
db2i_table::~db2i_table()
{
- if (blobFieldActualSizes)
- my_free(blobFieldActualSizes, MYF(0));
+ my_free(blobFieldActualSizes);
+ my_free(conversionDefinitions[toMySQL]);
- if (conversionDefinitions[toMySQL])
- my_free(conversionDefinitions[toMySQL], MYF(0));
-
if (logicalFiles)
{
for (int k = 0; k < logicalFileCount; ++k)
@@ -296,8 +293,8 @@ db2i_table::~db2i_table()
delete[] logicalFiles;
}
delete physicalFile;
-
- my_free(db2LibNameEbcdic, 0);
+
+ my_free(db2LibNameEbcdic);
}
void db2i_table::getDB2QualifiedName(char* to)
@@ -334,14 +331,14 @@ size_t db2i_table::smartFilenameToTableName(const char *in, char* out, size_t ou
if ((*cur <= 0x20) || (*cur >= 0x80))
{
strncpy(out, in, outlen);
- my_free(test, MYF(0));
+ my_free(test);
return min(outlen, strlen(out));
}
++cur;
}
strncpy(out, test, outlen);
- my_free(test, MYF(0));
+ my_free(test);
return min(outlen, strlen(out));
}
diff --git a/storage/ibmdb2i/db2i_file.h b/storage/ibmdb2i/db2i_file.h
index ff35a473b05..6cc6ae8947b 100644
--- a/storage/ibmdb2i/db2i_file.h
+++ b/storage/ibmdb2i/db2i_file.h
@@ -353,7 +353,7 @@ public:
db2i_ileBridge::getBridgeForThread()->deallocateFile(masterDefn);
if (db2FileName != (char*)db2Table->getDB2TableName(db2i_table::EBCDIC_NATIVE))
- my_free(db2FileName, MYF(0));
+ my_free(db2FileName);
}
// This is roughly equivalent to an "open". It tells ILE to allocate a descriptor
diff --git a/storage/ibmdb2i/db2i_global.h b/storage/ibmdb2i/db2i_global.h
index d201fbd8124..1cf8a9a7c61 100644
--- a/storage/ibmdb2i/db2i_global.h
+++ b/storage/ibmdb2i/db2i_global.h
@@ -131,7 +131,7 @@ void free_aligned(void* p)
{
if (likely(p))
{
- my_free(*(char**)((char*)p-sizeof(void*)), MYF(0));
+ my_free(*(char**)((char*)p-sizeof(void*)));
}
}
diff --git a/storage/ibmdb2i/db2i_ileBridge.cc b/storage/ibmdb2i/db2i_ileBridge.cc
index 68ae2c2bb72..fac98dd7107 100644
--- a/storage/ibmdb2i/db2i_ileBridge.cc
+++ b/storage/ibmdb2i/db2i_ileBridge.cc
@@ -102,7 +102,7 @@ db2i_ileBridge* db2i_ileBridge::createNewBridge(CONNECTION_HANDLE connID)
void db2i_ileBridge::destroyBridge(db2i_ileBridge* bridge)
{
bridge->freeErrorStorage();
- my_free(bridge, MYF(0));
+ my_free(bridge);
}
@@ -1306,7 +1306,7 @@ FILE_HANDLE db2i_ileBridge::PreservedHandleList::findAndRemove(const char* fileN
prev->next = next;
if (current == head)
head = next;
- my_free(current, MYF(0));
+ my_free(current);
DBUG_PRINT("db2i_ileBridge", ("Found handle %d for %s", uint32(tmp), fileName));
return tmp;
}
diff --git a/storage/ibmdb2i/db2i_ileBridge.h b/storage/ibmdb2i/db2i_ileBridge.h
index 10b9820d983..3a3ca141f69 100644
--- a/storage/ibmdb2i/db2i_ileBridge.h
+++ b/storage/ibmdb2i/db2i_ileBridge.h
@@ -320,7 +320,7 @@ public:
{
if (likely(connErrText))
{
- my_free(connErrText, MYF(0));
+ my_free(connErrText);
connErrText = NULL;
}
}
diff --git a/storage/ibmdb2i/ha_ibmdb2i.cc b/storage/ibmdb2i/ha_ibmdb2i.cc
index 81d7e59d8e3..947df8ad2fe 100644
--- a/storage/ibmdb2i/ha_ibmdb2i.cc
+++ b/storage/ibmdb2i/ha_ibmdb2i.cc
@@ -404,7 +404,7 @@ IBMDB2I_SHARE *ha_ibmdb2i::get_share(const char *table_name, TABLE *table)
error:
pthread_mutex_destroy(&share->mutex);
- my_free((uchar*) share, MYF(0));
+ my_free(share);
pthread_mutex_unlock(&ibmdb2i_mutex);
return NULL;
@@ -423,7 +423,7 @@ int ha_ibmdb2i::free_share(IBMDB2I_SHARE *share)
my_hash_delete(&ibmdb2i_open_tables, (uchar*) share);
thr_lock_delete(&share->lock);
pthread_mutex_destroy(&share->mutex);
- my_free(share, MYF(0));
+ my_free(share);
pthread_mutex_unlock(&ibmdb2i_mutex);
return 1;
}
@@ -571,9 +571,9 @@ ha_ibmdb2i::~ha_ibmdb2i()
DBUG_ASSERT(activeReferences == 0 || outstanding_start_bulk_insert);
if (indexHandles)
- my_free(indexHandles, MYF(0));
+ my_free(indexHandles);
if (indexReadSizeEstimates)
- my_free(indexReadSizeEstimates, MYF(0));
+ my_free(indexReadSizeEstimates);
cleanupBuffers();
}
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index b3445f86274..6b0d68241ea 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -2199,8 +2199,7 @@ innobase_init(
"InnoDB: syntax error in innodb_data_file_path");
mem_free_and_error:
srv_free_paths_and_sizes();
- my_free(internal_innobase_data_file_path,
- MYF(MY_ALLOW_ZERO_PTR));
+ my_free(internal_innobase_data_file_path);
goto error;
}
@@ -2485,8 +2484,7 @@ innobase_end(
err = 1;
}
srv_free_paths_and_sizes();
- my_free(internal_innobase_data_file_path,
- MYF(MY_ALLOW_ZERO_PTR));
+ my_free(internal_innobase_data_file_path);
mysql_mutex_destroy(&innobase_share_mutex);
mysql_mutex_destroy(&prepare_commit_mutex);
mysql_mutex_destroy(&commit_threads_m);
@@ -3439,7 +3437,7 @@ innobase_build_index_translation(
func_exit:
if (!ret) {
/* Build translation table failed. */
- my_free(index_mapping, MYF(MY_ALLOW_ZERO_PTR));
+ my_free(index_mapping);
share->idx_trans_tbl.array_size = 0;
share->idx_trans_tbl.index_count = 0;
@@ -3673,7 +3671,7 @@ retry:
"how you can resolve the problem.\n",
norm_name);
free_share(share);
- my_free(upd_buff, MYF(0));
+ my_free(upd_buff);
my_errno = ENOENT;
DBUG_RETURN(HA_ERR_NO_SUCH_TABLE);
@@ -3689,7 +3687,7 @@ retry:
"how you can resolve the problem.\n",
norm_name);
free_share(share);
- my_free(upd_buff, MYF(0));
+ my_free(upd_buff);
my_errno = ENOENT;
dict_table_decrement_handle_count(ib_table, FALSE);
@@ -3883,7 +3881,7 @@ ha_innobase::close(void)
row_prebuilt_free(prebuilt, FALSE);
- my_free(upd_buff, MYF(0));
+ my_free(upd_buff);
free_share(share);
/* Tell InnoDB server that there might be work for
@@ -6404,7 +6402,7 @@ create_index(
error = convert_error_code_to_mysql(error, flags, NULL);
- my_free(field_lengths, MYF(0));
+ my_free(field_lengths);
DBUG_RETURN(error);
}
@@ -7215,7 +7213,7 @@ innobase_drop_database(
trx = innobase_trx_allocate(thd);
#endif
error = row_drop_database_for_mysql(namebuf, trx);
- my_free(namebuf, MYF(0));
+ my_free(namebuf);
/* Flush the log to reduce probability that the .frm files and
the InnoDB data dictionary get out-of-sync if the user runs
@@ -7291,8 +7289,8 @@ innobase_rename_table(
log_buffer_flush_to_disk();
}
- my_free(norm_to, MYF(0));
- my_free(norm_from, MYF(0));
+ my_free(norm_to);
+ my_free(norm_from);
return error;
}
@@ -7455,7 +7453,7 @@ ha_innobase::records_in_range(
mem_heap_free(heap);
func_exit:
- my_free(key_val_buff2, MYF(0));
+ my_free(key_val_buff2);
prebuilt->trx->op_info = (char*)"";
@@ -8464,7 +8462,7 @@ ha_innobase::free_foreign_key_create_info(
char* str) /*!< in, own: create info string to free */
{
if (str) {
- my_free(str, MYF(0));
+ my_free(str);
}
}
@@ -9008,7 +9006,7 @@ innodb_show_status(
STRING_WITH_LEN(""), str, flen)) {
result= TRUE;
}
- my_free(str, MYF(0));
+ my_free(str);
DBUG_RETURN(FALSE);
}
@@ -9279,10 +9277,9 @@ static void free_share(INNOBASE_SHARE* share)
thr_lock_delete(&share->lock);
/* Free any memory from index translation table */
- my_free(share->idx_trans_tbl.index_mapping,
- MYF(MY_ALLOW_ZERO_PTR));
+ my_free(share->idx_trans_tbl.index_mapping);
- my_free(share, MYF(0));
+ my_free(share);
/* TODO: invoke HASH_MIGRATE if innobase_open_tables
shrinks too much */
diff --git a/storage/myisam/ft_boolean_search.c b/storage/myisam/ft_boolean_search.c
index 52ad6b11aa1..33c1e092a00 100644
--- a/storage/myisam/ft_boolean_search.c
+++ b/storage/myisam/ft_boolean_search.c
@@ -608,7 +608,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, uchar *query,
return ftb;
err:
free_root(& ftb->mem_root, MYF(0));
- my_free((uchar*)ftb,MYF(0));
+ my_free(ftb);
return 0;
}
@@ -1032,7 +1032,7 @@ void ft_boolean_close_search(FT_INFO *ftb)
delete_tree(& ftb->no_dupes);
}
free_root(& ftb->mem_root, MYF(0));
- my_free((uchar*)ftb,MYF(0));
+ my_free(ftb);
}
diff --git a/storage/myisam/ft_nlq_search.c b/storage/myisam/ft_nlq_search.c
index 5317da78ee4..7d9b13b7714 100644
--- a/storage/myisam/ft_nlq_search.c
+++ b/storage/myisam/ft_nlq_search.c
@@ -357,7 +357,7 @@ float ft_nlq_find_relevance(FT_INFO *handler,
void ft_nlq_close_search(FT_INFO *handler)
{
- my_free((uchar*)handler,MYF(0));
+ my_free(handler);
}
diff --git a/storage/myisam/ft_stopwords.c b/storage/myisam/ft_stopwords.c
index 9838b15af34..1467cc56759 100644
--- a/storage/myisam/ft_stopwords.c
+++ b/storage/myisam/ft_stopwords.c
@@ -38,7 +38,7 @@ static void FT_STOPWORD_free(FT_STOPWORD *w, TREE_FREE action,
void *arg __attribute__((unused)))
{
if (action == free_free)
- my_free((uchar*) w->pos, MYF(0));
+ my_free((void*)w->pos);
}
static int ft_add_stopword(const char *w)
@@ -87,7 +87,7 @@ int ft_init_stopwords()
}
error=0;
err1:
- my_free(buffer, MYF(0));
+ my_free(buffer);
err0:
my_close(fd, MYF(MY_WME));
return error;
@@ -121,7 +121,7 @@ void ft_free_stopwords()
if (stopwords3)
{
delete_tree(stopwords3); /* purecov: inspected */
- my_free((char*) stopwords3,MYF(0));
+ my_free(stopwords3);
stopwords3=0;
}
ft_stopword_file= 0;
diff --git a/storage/myisam/ha_myisam.cc b/storage/myisam/ha_myisam.cc
index 26f6a3903a8..87de58076cd 100644
--- a/storage/myisam/ha_myisam.cc
+++ b/storage/myisam/ha_myisam.cc
@@ -756,7 +756,7 @@ int ha_myisam::open(const char *name, int mode, uint test_if_locked)
recinfo must be freed.
*/
if (recinfo)
- my_free((uchar*) recinfo, MYF(0));
+ my_free(recinfo);
return my_errno;
}
@@ -1883,7 +1883,7 @@ int ha_myisam::create(const char *name, register TABLE *table_arg,
records, recinfo,
0, (MI_UNIQUEDEF*) 0,
&create_info, create_flags);
- my_free((uchar*) recinfo, MYF(0));
+ my_free(recinfo);
DBUG_RETURN(error);
}
diff --git a/storage/myisam/mi_check.c b/storage/myisam/mi_check.c
index 25267bfb9ea..13427130069 100644
--- a/storage/myisam/mi_check.c
+++ b/storage/myisam/mi_check.c
@@ -1369,12 +1369,12 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend)
printf("Lost space: %12s Linkdata: %10s\n",
llstr(empty,llbuff),llstr(link_used,llbuff2));
}
- my_free(mi_get_rec_buff_ptr(info, record), MYF(0));
+ my_free(mi_get_rec_buff_ptr(info, record));
DBUG_RETURN (error);
err:
mi_check_print_error(param,"got error: %d when reading datafile at record: %s",my_errno, llstr(records,llbuff));
err2:
- my_free(mi_get_rec_buff_ptr(info, record), MYF(0));
+ my_free(mi_get_rec_buff_ptr(info, record));
param->testflag|=T_RETRY_WITHOUT_QUICK;
DBUG_RETURN(1);
} /* chk_data_link */
@@ -1774,11 +1774,9 @@ err:
}
mi_mark_crashed_on_repair(info);
}
- my_free(mi_get_rec_buff_ptr(info, sort_param.rec_buff),
- MYF(MY_ALLOW_ZERO_PTR));
- my_free(mi_get_rec_buff_ptr(info, sort_param.record),
- MYF(MY_ALLOW_ZERO_PTR));
- my_free(sort_info.buff,MYF(MY_ALLOW_ZERO_PTR));
+ my_free(mi_get_rec_buff_ptr(info, sort_param.rec_buff));
+ my_free(mi_get_rec_buff_ptr(info, sort_param.record));
+ my_free(sort_info.buff);
(void) end_io_cache(&param->read_cache);
info->opt_flag&= ~(READ_CACHE_USED | WRITE_CACHE_USED);
(void) end_io_cache(&info->rec_cache);
@@ -2208,11 +2206,11 @@ int filecopy(MI_CHECK *param, File to,File from,my_off_t start,
mysql_file_write(to, (uchar*) buff, (uint) length, param->myf_rw))
goto err;
if (buff != tmp_buff)
- my_free(buff,MYF(0));
+ my_free(buff);
DBUG_RETURN(0);
err:
if (buff != tmp_buff)
- my_free(buff,MYF(0));
+ my_free(buff);
mi_check_print_error(param,"Can't copy %s to tempfile, error %d",
type,my_errno);
DBUG_RETURN(1);
@@ -2595,13 +2593,11 @@ err:
share->state.changed&= ~STATE_NOT_OPTIMIZED_KEYS;
share->state.changed|=STATE_NOT_SORTED_PAGES;
- my_free(mi_get_rec_buff_ptr(info, sort_param.rec_buff),
- MYF(MY_ALLOW_ZERO_PTR));
- my_free(mi_get_rec_buff_ptr(info, sort_param.record),
- MYF(MY_ALLOW_ZERO_PTR));
- my_free((uchar*) sort_info.key_block,MYF(MY_ALLOW_ZERO_PTR));
- my_free((uchar*) sort_info.ft_buf, MYF(MY_ALLOW_ZERO_PTR));
- my_free(sort_info.buff,MYF(MY_ALLOW_ZERO_PTR));
+ my_free(mi_get_rec_buff_ptr(info, sort_param.rec_buff));
+ my_free(mi_get_rec_buff_ptr(info, sort_param.record));
+ my_free(sort_info.key_block);
+ my_free(sort_info.ft_buf);
+ my_free(sort_info.buff);
(void) end_io_cache(&param->read_cache);
info->opt_flag&= ~(READ_CACHE_USED | WRITE_CACHE_USED);
if (!got_error && (param->testflag & T_UNPACK))
@@ -3142,10 +3138,10 @@ err:
mysql_mutex_destroy(&param->print_msg_mutex);
param->need_print_msg_lock= 0;
- my_free((uchar*) sort_info.ft_buf, MYF(MY_ALLOW_ZERO_PTR));
- my_free((uchar*) sort_info.key_block,MYF(MY_ALLOW_ZERO_PTR));
- my_free((uchar*) sort_param,MYF(MY_ALLOW_ZERO_PTR));
- my_free(sort_info.buff,MYF(MY_ALLOW_ZERO_PTR));
+ my_free(sort_info.ft_buf);
+ my_free(sort_info.key_block);
+ my_free(sort_param);
+ my_free(sort_info.buff);
(void) end_io_cache(&param->read_cache);
info->opt_flag&= ~(READ_CACHE_USED | WRITE_CACHE_USED);
if (!got_error && (param->testflag & T_UNPACK))
@@ -4551,7 +4547,7 @@ void update_auto_increment_key(MI_CHECK *param, MI_INFO *info,
if (my_errno != HA_ERR_END_OF_FILE)
{
mi_extra(info,HA_EXTRA_NO_KEYREAD,0);
- my_free(mi_get_rec_buff_ptr(info, record), MYF(0));
+ my_free(mi_get_rec_buff_ptr(info, record));
mi_check_print_error(param,"%d when reading last record",my_errno);
DBUG_VOID_RETURN;
}
@@ -4566,7 +4562,7 @@ void update_auto_increment_key(MI_CHECK *param, MI_INFO *info,
set_if_bigger(info->s->state.auto_increment, param->auto_increment_value);
}
mi_extra(info,HA_EXTRA_NO_KEYREAD,0);
- my_free(mi_get_rec_buff_ptr(info, record), MYF(0));
+ my_free(mi_get_rec_buff_ptr(info, record));
update_state_info(param, info, UPDATE_AUTO_INC);
DBUG_VOID_RETURN;
}
diff --git a/storage/myisam/mi_close.c b/storage/myisam/mi_close.c
index 8ec0bf14e0a..51408ab191c 100644
--- a/storage/myisam/mi_close.c
+++ b/storage/myisam/mi_close.c
@@ -57,7 +57,7 @@ int mi_close(register MI_INFO *info)
myisam_open_list=list_delete(myisam_open_list,&info->open_list);
mysql_mutex_unlock(&share->intern_lock);
- my_free(mi_get_rec_buff_ptr(info, info->rec_buff), MYF(MY_ALLOW_ZERO_PTR));
+ my_free(mi_get_rec_buff_ptr(info, info->rec_buff));
if (flag)
{
DBUG_EXECUTE_IF("crash_before_flush_keys",
@@ -88,8 +88,8 @@ int mi_close(register MI_INFO *info)
#endif
if (share->decode_trees)
{
- my_free((uchar*) share->decode_trees,MYF(0));
- my_free((uchar*) share->decode_tables,MYF(0));
+ my_free(share->decode_trees);
+ my_free(share->decode_tables);
}
#ifdef THREAD
thr_lock_delete(&share->lock);
@@ -103,19 +103,19 @@ int mi_close(register MI_INFO *info)
}
}
#endif
- my_free((uchar*) info->s,MYF(0));
+ my_free(info->s);
}
mysql_mutex_unlock(&THR_LOCK_myisam);
if (info->ftparser_param)
{
- my_free((uchar*)info->ftparser_param, MYF(0));
+ my_free(info->ftparser_param);
info->ftparser_param= 0;
}
if (info->dfile >= 0 && mysql_file_close(info->dfile, MYF(0)))
error = my_errno;
myisam_log_command(MI_LOG_CLOSE,info,NULL,0,error);
- my_free((uchar*) info,MYF(0));
+ my_free(info);
if (error)
{
diff --git a/storage/myisam/mi_create.c b/storage/myisam/mi_create.c
index 3db03e23637..c415264cd98 100644
--- a/storage/myisam/mi_create.c
+++ b/storage/myisam/mi_create.c
@@ -834,7 +834,7 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
mysql_mutex_unlock(&THR_LOCK_myisam);
if (mysql_file_close(file, MYF(0)))
goto err;
- my_free((char*) rec_per_key_part,MYF(0));
+ my_free(rec_per_key_part);
DBUG_RETURN(0);
err:
@@ -860,7 +860,7 @@ err:
MY_UNPACK_FILENAME | MY_APPEND_EXT),
MYF(0));
}
- my_free((char*) rec_per_key_part, MYF(0));
+ my_free(rec_per_key_part);
DBUG_RETURN(my_errno=save_errno); /* return the fatal errno */
}
diff --git a/storage/myisam/mi_dynrec.c b/storage/myisam/mi_dynrec.c
index 02a8f21e3e2..59b895b5e64 100644
--- a/storage/myisam/mi_dynrec.c
+++ b/storage/myisam/mi_dynrec.c
@@ -44,7 +44,7 @@ static int _mi_cmp_buffer(File file, const uchar *buff, my_off_t filepos,
#undef my_alloca
#undef my_afree
#define my_alloca(A) my_malloc((A),MYF(0))
-#define my_afree(A) my_free((A),MYF(0))
+#define my_afree(A) my_free((A))
#endif
/* Interface function from MI_INFO */
@@ -1575,7 +1575,7 @@ int _mi_cmp_dynamic_unique(MI_INFO *info, MI_UNIQUEDEF *def,
error=mi_unique_comp(def, record, old_record, def->null_are_equal);
if (info->s->base.blobs)
{
- my_free(mi_get_rec_buff_ptr(info, info->rec_buff), MYF(MY_ALLOW_ZERO_PTR));
+ my_free(mi_get_rec_buff_ptr(info, info->rec_buff));
info->rec_buff=rec_buff;
}
my_afree(old_record);
diff --git a/storage/myisam/mi_open.c b/storage/myisam/mi_open.c
index 1d877748b31..014cf1c5a2c 100644
--- a/storage/myisam/mi_open.c
+++ b/storage/myisam/mi_open.c
@@ -676,7 +676,7 @@ err:
mi_report_error(save_errno, name);
switch (errpos) {
case 6:
- my_free((uchar*) m_info,MYF(0));
+ my_free(m_info);
/* fall through */
case 5:
(void) mysql_file_close(info.dfile, MYF(0));
@@ -684,7 +684,7 @@ err:
break; /* Don't remove open table */
/* fall through */
case 4:
- my_free((uchar*) share,MYF(0));
+ my_free(share);
/* fall through */
case 3:
if (! lock_error)
diff --git a/storage/myisam/mi_packrec.c b/storage/myisam/mi_packrec.c
index 580c58e6ea1..0ba495fdd68 100644
--- a/storage/myisam/mi_packrec.c
+++ b/storage/myisam/mi_packrec.c
@@ -298,9 +298,9 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
err3:
my_errno=HA_ERR_WRONG_IN_RECORD;
err2:
- my_free((uchar*) share->decode_tables,MYF(0));
+ my_free(share->decode_tables);
err1:
- my_free((uchar*) share->decode_trees,MYF(0));
+ my_free(share->decode_trees);
err0:
DBUG_RETURN(1);
}
diff --git a/storage/myisam/mi_preload.c b/storage/myisam/mi_preload.c
index ae45014eab5..31537f7054b 100644
--- a/storage/myisam/mi_preload.c
+++ b/storage/myisam/mi_preload.c
@@ -113,11 +113,11 @@ int mi_preload(MI_INFO *info, ulonglong key_map, my_bool ignore_leaves)
}
while (pos != key_file_length);
- my_free((char*) buff, MYF(0));
+ my_free(buff);
DBUG_RETURN(0);
err:
- my_free((char*) buff, MYF(MY_ALLOW_ZERO_PTR));
+ my_free(buff);
DBUG_RETURN(my_errno= errno);
}
diff --git a/storage/myisam/mi_test2.c b/storage/myisam/mi_test2.c
index 63525b08820..60b16d5549e 100644
--- a/storage/myisam/mi_test2.c
+++ b/storage/myisam/mi_test2.c
@@ -21,9 +21,6 @@
#ifdef DBUG_OFF
#undef DBUG_OFF
#endif
-#ifndef SAFEMALLOC
-#define SAFEMALLOC
-#endif
#include "myisamdef.h"
#include <m_ctype.h>
#include <my_bit.h>
@@ -856,7 +853,7 @@ reads: %10lu\n",
}
end_key_cache(dflt_key_cache,1);
if (blob_buffer)
- my_free(blob_buffer,MYF(0));
+ my_free(blob_buffer);
my_end(silent ? MY_CHECK_ERROR : MY_CHECK_ERROR | MY_GIVE_INFO);
return(0);
err:
diff --git a/storage/myisam/mi_write.c b/storage/myisam/mi_write.c
index 5b46db111b3..f2d43585eef 100644
--- a/storage/myisam/mi_write.c
+++ b/storage/myisam/mi_write.c
@@ -286,7 +286,7 @@ int _mi_ck_write_btree(register MI_INFO *info, uint keynr, uchar *key,
if (!error)
error= _mi_ft_convert_to_ft2(info, keynr, key);
delete_dynamic(info->ft1_to_ft2);
- my_free((uchar*)info->ft1_to_ft2, MYF(0));
+ my_free(info->ft1_to_ft2);
info->ft1_to_ft2=0;
}
DBUG_RETURN(error);
@@ -1045,7 +1045,7 @@ void mi_end_bulk_insert(MI_INFO *info)
delete_tree(& info->bulk_insert[i]);
}
}
- my_free((void *)info->bulk_insert, MYF(0));
+ my_free(info->bulk_insert);
info->bulk_insert=0;
}
}
diff --git a/storage/myisam/myisamchk.c b/storage/myisam/myisamchk.c
index 11ec52fd123..0e32dc59d89 100644
--- a/storage/myisam/myisamchk.c
+++ b/storage/myisam/myisamchk.c
@@ -1629,11 +1629,10 @@ err:
{
my_afree((uchar*) temp_buff);
}
- my_free(mi_get_rec_buff_ptr(info, sort_param.record),
- MYF(MY_ALLOW_ZERO_PTR));
+ my_free(mi_get_rec_buff_ptr(info, sort_param.record));
info->opt_flag&= ~(READ_CACHE_USED | WRITE_CACHE_USED);
(void) end_io_cache(&info->rec_cache);
- my_free(sort_info.buff,MYF(MY_ALLOW_ZERO_PTR));
+ my_free(sort_info.buff);
sort_info.buff=0;
share->state.sortkey=sort_key;
DBUG_RETURN(flush_blocks(param, share->key_cache, share->kfile) |
@@ -1673,7 +1672,6 @@ static int sort_record_index(MI_SORT_PARAM *sort_param,MI_INFO *info,
endpos=buff+used_length;
for ( ;; )
{
- _sanity(__FILE__,__LINE__);
if (nod_flag)
{
next_page=_mi_kpos(nod_flag,keypos);
@@ -1689,7 +1687,6 @@ static int sort_record_index(MI_SORT_PARAM *sort_param,MI_INFO *info,
new_file, update_index))
goto err;
}
- _sanity(__FILE__,__LINE__);
if (keypos >= endpos ||
(key_length=(*keyinfo->get_key)(keyinfo,nod_flag,&keypos,lastkey))
== 0)
diff --git a/storage/myisam/myisamlog.c b/storage/myisam/myisamlog.c
index 089e3480da6..1733d7140cd 100644
--- a/storage/myisam/myisamlog.c
+++ b/storage/myisam/myisamlog.c
@@ -616,7 +616,7 @@ static int examine_log(char * file_name, char **table_names)
}
}
}
- my_free(buff,MYF(0));
+ my_free(buff);
break;
case MI_LOG_LOCK:
if (my_b_read(&cache,(uchar*) head,sizeof(lock_command)))
@@ -683,12 +683,12 @@ static int read_string(IO_CACHE *file, register uchar* *to, register uint length
DBUG_ENTER("read_string");
if (*to)
- my_free((uchar*) *to,MYF(0));
+ my_free(*to);
if (!(*to= (uchar*) my_malloc(length+1,MYF(MY_WME))) ||
my_b_read(file,(uchar*) *to,length))
{
if (*to)
- my_free(*to,MYF(0));
+ my_free(*to);
*to= 0;
DBUG_RETURN(1);
}
@@ -759,10 +759,10 @@ static void file_info_free(struct file_info *fileinfo)
if (!fileinfo->closed)
(void) mi_close(fileinfo->isam);
if (fileinfo->record)
- my_free(fileinfo->record,MYF(0));
+ my_free(fileinfo->record);
}
- my_free(fileinfo->name,MYF(0));
- my_free(fileinfo->show_name,MYF(0));
+ my_free(fileinfo->name);
+ my_free(fileinfo->show_name);
DBUG_VOID_RETURN;
}
diff --git a/storage/myisam/myisampack.c b/storage/myisam/myisampack.c
index 18810a60166..d4997a2bcbb 100644
--- a/storage/myisam/myisampack.c
+++ b/storage/myisam/myisampack.c
@@ -486,7 +486,7 @@ static my_bool open_isam_files(PACK_MRG_INFO *mrg, char **names, uint count)
error:
while (i--)
mi_close(mrg->file[i]);
- my_free((uchar*) mrg->file,MYF(0));
+ my_free(mrg->file);
return 1;
}
@@ -534,10 +534,10 @@ static int compress(PACK_MRG_INFO *mrg,char *result_table)
my_write(join_isam_file,buff,length,
MYF(MY_WME | MY_NABP | MY_WAIT_IF_FULL)))
{
- my_free(buff,MYF(0));
+ my_free(buff);
goto err;
}
- my_free(buff,MYF(0));
+ my_free(buff);
(void) fn_format(new_name,result_table,"",MI_NAME_DEXT,2);
}
else if (!tmp_dir[0])
@@ -564,7 +564,6 @@ static int compress(PACK_MRG_INFO *mrg,char *result_table)
}
trees=fields=share->base.fields;
huff_counts=init_huff_count(isam_file,mrg->records);
- QUICK_SAFEMALLOC;
/*
Read the whole data file(s) for statistics.
@@ -574,7 +573,7 @@ static int compress(PACK_MRG_INFO *mrg,char *result_table)
printf("- Calculating statistics\n");
if (get_statistic(mrg,huff_counts))
goto err;
- NORMAL_SAFEMALLOC;
+
old_length=0;
for (i=0; i < mrg->count ; i++)
old_length+= (mrg->file[i]->s->state.state.data_file_length -
@@ -857,11 +856,11 @@ static void free_counts_and_tree_and_queue(HUFF_TREE *huff_trees, uint trees,
for (i=0 ; i < trees ; i++)
{
if (huff_trees[i].element_buffer)
- my_free((uchar*) huff_trees[i].element_buffer,MYF(0));
+ my_free(huff_trees[i].element_buffer);
if (huff_trees[i].code)
- my_free((uchar*) huff_trees[i].code,MYF(0));
+ my_free(huff_trees[i].code);
}
- my_free((uchar*) huff_trees,MYF(0));
+ my_free(huff_trees);
}
if (huff_counts)
{
@@ -869,11 +868,11 @@ static void free_counts_and_tree_and_queue(HUFF_TREE *huff_trees, uint trees,
{
if (huff_counts[i].tree_buff)
{
- my_free((uchar*) huff_counts[i].tree_buff,MYF(0));
+ my_free(huff_counts[i].tree_buff);
delete_tree(&huff_counts[i].int_tree);
}
}
- my_free((uchar*) huff_counts,MYF(0));
+ my_free(huff_counts);
}
delete_queue(&queue); /* This is safe to free */
return;
@@ -977,7 +976,7 @@ static int get_statistic(PACK_MRG_INFO *mrg,HUFF_COUNTS *huff_counts)
count->int_tree.elements_in_tree > 1))
{
delete_tree(&count->int_tree);
- my_free(count->tree_buff,MYF(0));
+ my_free(count->tree_buff);
count->tree_buff=0;
}
else
@@ -1374,12 +1373,12 @@ static void check_counts(HUFF_COUNTS *huff_counts, uint trees,
}
else
{
- my_free((uchar*) huff_counts->tree_buff,MYF(0));
+ my_free(huff_counts->tree_buff);
delete_tree(&huff_counts->int_tree);
huff_counts->tree_buff=0;
}
if (tree.element_buffer)
- my_free((uchar*) tree.element_buffer,MYF(0));
+ my_free(tree.element_buffer);
}
if (huff_counts->pack_type & PACK_TYPE_SPACE_FIELDS)
space_fields++;
@@ -1496,8 +1495,8 @@ static HUFF_TREE* make_huff_trees(HUFF_COUNTS *huff_counts, uint trees)
if (make_huff_tree(huff_tree+tree,huff_counts+tree))
{
while (tree--)
- my_free((uchar*) huff_tree[tree].element_buffer,MYF(0));
- my_free((uchar*) huff_tree,MYF(0));
+ my_free(huff_tree[tree].element_buffer);
+ my_free(huff_tree);
DBUG_RETURN(0);
}
}
@@ -1907,7 +1906,7 @@ static uint join_same_trees(HUFF_COUNTS *huff_counts, uint trees)
{
memcpy_fixed((uchar*) i->counts,(uchar*) count.counts,
sizeof(count.counts[0])*256);
- my_free((uchar*) j->tree->element_buffer,MYF(0));
+ my_free(j->tree->element_buffer);
j->tree->element_buffer=0;
j->tree=i->tree;
bmove((uchar*) i->counts,(uchar*) count.counts,
@@ -2913,7 +2912,7 @@ static int flush_buffer(ulong neaded_length)
static void end_file_buffer(void)
{
- my_free((uchar*) file_buffer.buffer,MYF(0));
+ my_free(file_buffer.buffer);
}
/* output `bits` low bits of `value' */
@@ -3117,7 +3116,7 @@ static int mrg_close(PACK_MRG_INFO *mrg)
for (i=0 ; i < mrg->count ; i++)
error|=mi_close(mrg->file[i]);
if (mrg->free_file)
- my_free((uchar*) mrg->file,MYF(0));
+ my_free(mrg->file);
return error;
}
@@ -3180,7 +3179,7 @@ static void fakebigcodes(HUFF_COUNTS *huff_counts, HUFF_COUNTS *end_count)
*/
if (huff_counts->tree_buff)
{
- my_free((uchar*) huff_counts->tree_buff, MYF(0));
+ my_free(huff_counts->tree_buff);
delete_tree(&huff_counts->int_tree);
huff_counts->tree_buff= NULL;
DBUG_PRINT("fakebigcodes", ("freed distinct column values"));
diff --git a/storage/myisam/rt_index.c b/storage/myisam/rt_index.c
index 410badd3145..32cf1fd924d 100644
--- a/storage/myisam/rt_index.c
+++ b/storage/myisam/rt_index.c
@@ -972,7 +972,7 @@ int rtree_delete(MI_INFO *info, uint keynr, uchar *key, uint key_length)
goto err1;
}
if (ReinsertList.pages)
- my_free((uchar*) ReinsertList.pages, MYF(0));
+ my_free(ReinsertList.pages);
/* check for redundant root (not leaf, 1 child) and eliminate */
if ((old_root = info->s->state.key_root[keynr]) == HA_OFFSET_ERROR)
diff --git a/storage/myisam/sort.c b/storage/myisam/sort.c
index 539630899f4..a824de8c9fb 100644
--- a/storage/myisam/sort.c
+++ b/storage/myisam/sort.c
@@ -162,7 +162,7 @@ int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages,
if (my_init_dynamic_array(&buffpek, sizeof(BUFFPEK), maxbuffer,
maxbuffer/2))
{
- my_free((uchar*) sort_keys,MYF(0));
+ my_free(sort_keys);
sort_keys= 0;
}
else
@@ -242,8 +242,7 @@ int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages,
error =0;
err:
- if (sort_keys)
- my_free((uchar*) sort_keys,MYF(0));
+ my_free(sort_keys);
delete_dynamic(&buffpek);
close_cached_file(&tempfile);
close_cached_file(&tempfile_for_exceptions);
@@ -382,7 +381,7 @@ pthread_handler_t thr_find_all_keys(void *arg)
if (my_init_dynamic_array(&sort_param->buffpek, sizeof(BUFFPEK),
maxbuffer, maxbuffer/2))
{
- my_free((uchar*) sort_keys,MYF(0));
+ my_free(sort_keys);
sort_keys= (uchar **) NULL; /* for err: label */
}
else
@@ -451,8 +450,7 @@ pthread_handler_t thr_find_all_keys(void *arg)
err:
DBUG_PRINT("error", ("got some error"));
sort_param->sort_info->got_error= 1; /* no need to protect with a mutex */
- if (sort_keys)
- my_free((uchar*) sort_keys,MYF(0));
+ my_free(sort_keys);
sort_param->sort_keys= 0;
delete_dynamic(& sort_param->buffpek);
close_cached_file(&sort_param->tempfile);
@@ -509,8 +507,7 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
if (!sinfo->sort_keys)
{
got_error=1;
- my_free(mi_get_rec_buff_ptr(info, sinfo->rec_buff),
- MYF(MY_ALLOW_ZERO_PTR));
+ my_free(mi_get_rec_buff_ptr(info, sinfo->rec_buff));
continue;
}
if (!got_error)
@@ -528,9 +525,8 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
got_error=1;
}
}
- my_free((uchar*) sinfo->sort_keys,MYF(0));
- my_free(mi_get_rec_buff_ptr(info, sinfo->rec_buff),
- MYF(MY_ALLOW_ZERO_PTR));
+ my_free(sinfo->sort_keys);
+ my_free(mi_get_rec_buff_ptr(info, sinfo->rec_buff));
sinfo->sort_keys=0;
}
@@ -638,7 +634,7 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
sinfo->notnull : NULL,
(ulonglong) info->state->records);
}
- my_free((uchar*) mergebuf,MYF(MY_ALLOW_ZERO_PTR));
+ my_free(mergebuf);
DBUG_RETURN(got_error);
}
#endif /* THREAD */
@@ -1057,7 +1053,7 @@ flush_ft_buf(MI_SORT_PARAM *info)
if (info->sort_info->ft_buf)
{
err=sort_ft_buf_flush(info);
- my_free((uchar*)info->sort_info->ft_buf, MYF(0));
+ my_free(info->sort_info->ft_buf);
info->sort_info->ft_buf=0;
}
return err;
diff --git a/storage/myisammrg/ha_myisammrg.cc b/storage/myisammrg/ha_myisammrg.cc
index 67b81225b13..bf34bf538a1 100644
--- a/storage/myisammrg/ha_myisammrg.cc
+++ b/storage/myisammrg/ha_myisammrg.cc
@@ -831,7 +831,7 @@ int ha_myisammrg::attach_children(void)
error= HA_ERR_WRONG_MRG_TABLE_DEF;
if (!(this->test_if_locked & HA_OPEN_FOR_REPAIR))
{
- my_free((uchar*) recinfo, MYF(0));
+ my_free(recinfo);
goto err;
}
/* purecov: begin inspected */
@@ -839,7 +839,7 @@ int ha_myisammrg::attach_children(void)
/* purecov: end */
}
}
- my_free((uchar*) recinfo, MYF(0));
+ my_free(recinfo);
if (error == HA_ERR_WRONG_MRG_TABLE_DEF)
goto err; /* purecov: inspected */
diff --git a/storage/myisammrg/myrg_close.c b/storage/myisammrg/myrg_close.c
index 45e0a82913a..066a09cadbc 100644
--- a/storage/myisammrg/myrg_close.c
+++ b/storage/myisammrg/myrg_close.c
@@ -53,13 +53,13 @@ int myrg_close(MYRG_INFO *info)
}
}
else
- my_free((uchar*) info->rec_per_key_part, MYF(MY_ALLOW_ZERO_PTR));
+ my_free(info->rec_per_key_part);
delete_queue(&info->by_key);
mysql_mutex_lock(&THR_LOCK_open);
myrg_open_list=list_delete(myrg_open_list,&info->open_list);
mysql_mutex_unlock(&THR_LOCK_open);
mysql_mutex_destroy(&info->mutex);
- my_free((uchar*) info,MYF(0));
+ my_free(info);
if (error)
{
DBUG_RETURN(my_errno=error);
diff --git a/storage/myisammrg/myrg_open.c b/storage/myisammrg/myrg_open.c
index 915680ab64c..e4793ffe672 100644
--- a/storage/myisammrg/myrg_open.c
+++ b/storage/myisammrg/myrg_open.c
@@ -186,7 +186,7 @@ err:
case 3:
while (files)
(void) mi_close(m_info->open_tables[--files].table);
- my_free((char*) m_info,MYF(0));
+ my_free(m_info);
/* Fall through */
case 2:
end_io_cache(&file);
@@ -339,7 +339,7 @@ MYRG_INFO *myrg_parent_open(const char *parent_name,
save_errno= my_errno;
switch (errpos) {
case 3:
- my_free((char*) m_info, MYF(0));
+ my_free(m_info);
/* Fall through */
case 2:
end_io_cache(&file_cache);
@@ -422,7 +422,7 @@ int myrg_attach_children(MYRG_INFO *m_info, int handle_locking,
key_parts= myisam->s->base.key_parts;
if (*need_compat_check && m_info->rec_per_key_part)
{
- my_free((char *) m_info->rec_per_key_part, MYF(0));
+ my_free(m_info->rec_per_key_part);
m_info->rec_per_key_part= NULL;
}
if (!m_info->rec_per_key_part)
@@ -491,7 +491,7 @@ err:
save_errno= my_errno;
switch (errpos) {
case 1:
- my_free((char*) m_info->rec_per_key_part, MYF(0));
+ my_free(m_info->rec_per_key_part);
m_info->rec_per_key_part= NULL;
}
mysql_mutex_unlock(&m_info->mutex);
diff --git a/storage/ndb/config/win-lib.am b/storage/ndb/config/win-lib.am
index 05ac1ec8a40..1e7bbfae19b 100644
--- a/storage/ndb/config/win-lib.am
+++ b/storage/ndb/config/win-lib.am
@@ -68,7 +68,7 @@ LIB32=xilink6.exe -lib
# PROP Intermediate_Dir "debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /Gf /D "WIN32" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_WINDOWS" /FD /c
+# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /Gf /D "WIN32" /D "_DEBUG" /D "SAFE_MUTEX" /D "_WINDOWS" /FD /c
# ADD BASE CPP @includes@
# ADD CPP @includes@
# SUBTRACT CPP /YX
diff --git a/storage/ndb/config/win-prg.am b/storage/ndb/config/win-prg.am
index 70c19a70c6d..5d56d79c41e 100644
--- a/storage/ndb/config/win-prg.am
+++ b/storage/ndb/config/win-prg.am
@@ -71,7 +71,7 @@ LINK32=xilink6.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "NDB_WIN32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /D "NDB_WIN32" /I "../include" /I "../regex" /I "../zlib" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "HAVE_INNOBASE_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /c
+# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /D "NDB_WIN32" /I "../include" /I "../regex" /I "../zlib" /D "_DEBUG" /D "SAFE_MUTEX" /D "HAVE_INNOBASE_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /c
# ADD BASE CPP @includes@
# ADD CPP @includes@
# SUBTRACT CPP /Fr /YX
diff --git a/storage/ndb/include/util/NdbAutoPtr.hpp b/storage/ndb/include/util/NdbAutoPtr.hpp
index 5210fbc6dde..f11b8f0d5bc 100644
--- a/storage/ndb/include/util/NdbAutoPtr.hpp
+++ b/storage/ndb/include/util/NdbAutoPtr.hpp
@@ -51,8 +51,8 @@ class My_auto_ptr {
T * m_obj;
public:
My_auto_ptr(T * obj = 0){ m_obj = obj;}
- void reset(T * obj = 0) { if (m_obj) my_free(m_obj,MYF(0)); m_obj = obj; }
- ~My_auto_ptr() { if (m_obj) my_free(m_obj,MYF(0));}
+ void reset(T * obj = 0) { if (m_obj) my_free(m_obj); m_obj = obj; }
+ ~My_auto_ptr() { if (m_obj) my_free(m_obj);}
};
#endif
diff --git a/storage/ndb/src/mgmapi/mgmapi.cpp b/storage/ndb/src/mgmapi/mgmapi.cpp
index 662e5c22f48..78c767c31c6 100644
--- a/storage/ndb/src/mgmapi/mgmapi.cpp
+++ b/storage/ndb/src/mgmapi/mgmapi.cpp
@@ -212,7 +212,7 @@ extern "C"
void
ndb_mgm_set_name(NdbMgmHandle handle, const char *name)
{
- my_free(handle->m_name, MYF(MY_ALLOW_ZERO_PTR));
+ my_free(handle->m_name);
handle->m_name= my_strdup(name, MYF(MY_WME));
}
@@ -278,10 +278,10 @@ ndb_mgm_destroy_handle(NdbMgmHandle * handle)
}
#endif
(*handle)->cfg.~LocalConfig();
- my_free((*handle)->m_name, MYF(MY_ALLOW_ZERO_PTR));
+ my_free((*handle)->m_name);
if ((*handle)->m_bindaddress)
free((*handle)->m_bindaddress);
- my_free((char*)* handle,MYF(MY_ALLOW_ZERO_PTR));
+ my_free(* handle);
* handle = 0;
DBUG_VOID_RETURN;
}
diff --git a/storage/ndb/src/mgmapi/ndb_logevent.cpp b/storage/ndb/src/mgmapi/ndb_logevent.cpp
index fbf026fd79d..c372f852144 100644
--- a/storage/ndb/src/mgmapi/ndb_logevent.cpp
+++ b/storage/ndb/src/mgmapi/ndb_logevent.cpp
@@ -82,7 +82,7 @@ void ndb_mgm_destroy_logevent_handle(NdbLogEventHandle * h)
if ( *h )
close((*h)->socket);
- my_free((char*)* h,MYF(MY_ALLOW_ZERO_PTR));
+ my_free(* h);
* h = 0;
}
diff --git a/storage/ndb/test/ndbapi/testIndexStat.cpp b/storage/ndb/test/ndbapi/testIndexStat.cpp
index 0e15cdd80d1..559fade3132 100644
--- a/storage/ndb/test/ndbapi/testIndexStat.cpp
+++ b/storage/ndb/test/ndbapi/testIndexStat.cpp
@@ -404,9 +404,9 @@ static void
freekeys()
{
if (g_keys != 0)
- my_free((char*)g_keys, MYF(0));
+ my_free(g_keys);
if (g_sortkeys != 0)
- my_free((char*)g_sortkeys, MYF(0));
+ my_free(g_sortkeys);
g_keys = 0;
g_sortkeys = 0;
}
@@ -896,7 +896,7 @@ static void
freeranges()
{
if (g_ranges != 0)
- my_free((char*)g_ranges, MYF(0));
+ my_free(g_ranges);
g_ranges = 0;
}
diff --git a/storage/ndb/tools/restore/consumer_restore.cpp b/storage/ndb/tools/restore/consumer_restore.cpp
index e8e8d584f09..f63cbdd2aa2 100644
--- a/storage/ndb/tools/restore/consumer_restore.cpp
+++ b/storage/ndb/tools/restore/consumer_restore.cpp
@@ -449,13 +449,13 @@ bool BackupRestore::translate_frm(NdbDictionary::Table *table)
}
if (map_in_frm(new_data, (const char*)data, data_len, &new_data_len))
{
- my_free(new_data, MYF(0));
+ my_free(new_data);
DBUG_RETURN(TRUE);
}
if (packfrm((uchar*) new_data, new_data_len,
&new_pack_data, &new_pack_len))
{
- my_free(new_data, MYF(0));
+ my_free(new_data);
DBUG_RETURN(TRUE);
}
table->setFrm(new_pack_data, new_pack_len);
diff --git a/storage/perfschema/pfs.cc b/storage/perfschema/pfs.cc
index f5901540ab0..3cd637ffa66 100644
--- a/storage/perfschema/pfs.cc
+++ b/storage/perfschema/pfs.cc
@@ -1009,7 +1009,7 @@ void* pfs_spawn_thread(void *arg)
*/
user_start_routine= typed_arg->m_user_start_routine;
user_arg= typed_arg->m_user_arg;
- my_free(typed_arg, MYF(0));
+ my_free(typed_arg);
/* Then, execute the user code for this thread. */
(*user_start_routine)(user_arg);
@@ -1037,7 +1037,7 @@ static int spawn_thread_v1(PSI_thread_key key,
int result= pthread_create(thread, attr, pfs_spawn_thread, psi_arg);
if (unlikely(result != 0))
- my_free(psi_arg, MYF(0));
+ my_free(psi_arg);
return result;
}