diff options
author | Vladislav Vaintroub <wlad@montyprogram.com> | 2011-12-02 14:35:26 +0100 |
---|---|---|
committer | Vladislav Vaintroub <wlad@montyprogram.com> | 2011-12-02 14:35:26 +0100 |
commit | 5beb816a7ec2e39d870f7fd3879dd5ac1e504e23 (patch) | |
tree | fa9d4577beb3cfbe5505c5e6c083c163c6957d08 /dbug | |
parent | 5d67eb6b5cc8d3643489acc39c545c0993d9777c (diff) | |
download | mariadb-git-5beb816a7ec2e39d870f7fd3879dd5ac1e504e23.tar.gz |
Make it possible to compile without SAFEMALLOC in debug builds
Default to no SAFEMALLOC on Windows, because C runtime malloc
has this functionslity already
Diffstat (limited to 'dbug')
-rw-r--r-- | dbug/CMakeLists.txt | 11 | ||||
-rw-r--r-- | dbug/dbug.c | 13 |
2 files changed, 23 insertions, 1 deletions
diff --git a/dbug/CMakeLists.txt b/dbug/CMakeLists.txt index a4f30f75f97..0a9af25dba1 100644 --- a/dbug/CMakeLists.txt +++ b/dbug/CMakeLists.txt @@ -17,6 +17,17 @@ INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/dbug ${CMAKE_SOURCE_DIR}/include ) +IF(WIN32) + SET(DEFAULT_SAFEMALLOC OFF) +ELSE() + SET(DEFAULT_SAFEMALLOC ON) +ENDIF() +OPTION(WITH_SAFEMALLOC ${DEFAULT_SAFEMALLOC} "Use safemalloc for debug builds. Will result in slower execution.") + +IF(WITH_SAFEMALLOC) + ADD_DEFINITIONS( -DSAFEMALLOC) +ENDIF() + SET(DBUG_SOURCES dbug.c) ADD_CONVENIENCE_LIBRARY(dbug ${DBUG_SOURCES}) TARGET_LINK_LIBRARIES(dbug mysys) diff --git a/dbug/dbug.c b/dbug/dbug.c index 3dce91cd2ca..299d3e0d5da 100644 --- a/dbug/dbug.c +++ b/dbug/dbug.c @@ -2253,6 +2253,9 @@ static void free_memory(void *ptr); void *_db_malloc_(size_t size) { +#ifndef SAFEMALLOC + return malloc(size); +#else CODE_STATE *cs= code_state(); struct st_irem *irem; uchar *data; @@ -2318,10 +2321,14 @@ void *_db_malloc_(size_t size) TRASH_ALLOC(data, size); return data; +#endif } void *_db_realloc_(void *ptr, size_t size) { +#ifndef SAFEMALLOC + return realloc(ptr, size); +#else char *data; if (!ptr) @@ -2338,15 +2345,19 @@ void *_db_realloc_(void *ptr, size_t size) free_memory(ptr); } return data; +#endif } void _db_free_(void *ptr) { +#ifndef SAFEMALLOC + free(ptr); +#else if (!ptr || bad_ptr("Freeing", ptr)) return; free_memory(ptr); - return; +#endif } static void free_memory(void *ptr) |