summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2016-07-14 21:50:10 +0200
committerRalf Habacker <ralf.habacker@freenet.de>2016-07-14 21:50:10 +0200
commit2390c69803c6afe38191fad339ce727d49aada2b (patch)
treeb62826ae453ad1a098b5f4831fe1b3fe23ea9476
parentd22ee4f949b8879cc014425497e9ca12ec9e12cc (diff)
Fixup of memory tracer.memory-tracer
-rw-r--r--cmake/CMakeLists.txt2
-rw-r--r--cmake/dbus/CMakeLists.txt2
-rw-r--r--dbus/dbus-internals.c8
-rw-r--r--dbus/dbus-internals.h6
-rw-r--r--dbus/dbus-memory.c2
5 files changed, 17 insertions, 3 deletions
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index dc1675f3b..2b73d3cee 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -143,7 +143,7 @@ endif()
if(DBUS_MEMORY_DEBUG)
add_definitions(-DDBUS_MEMORY_DEBUG)
find_package(Qt5 REQUIRED COMPONENTS Core)
- set(DBUS_MEMORY_DEBUG_LIBRARY Qt5::Core dbghelp)
+ set(DBUS_MEMORY_DEBUG_LIBRARY Qt5::Core)
endif()
# analogous to AC_USE_SYSTEM_EXTENSIONS in configure.ac
diff --git a/cmake/dbus/CMakeLists.txt b/cmake/dbus/CMakeLists.txt
index f38f79f00..d0becd56d 100644
--- a/cmake/dbus/CMakeLists.txt
+++ b/cmake/dbus/CMakeLists.txt
@@ -276,7 +276,7 @@ if(WIN32)
if(WINCE)
target_link_libraries(dbus-1 ws2)
else(WINCE)
- target_link_libraries(dbus-1 ws2_32 advapi32 netapi32 iphlpapi ${DBUS_MEMORY_DEBUG_LIBRARY})
+ target_link_libraries(dbus-1 ws2_32 advapi32 netapi32 iphlpapi dbghelp ${DBUS_MEMORY_DEBUG_LIBRARY})
endif(WINCE)
else(WIN32)
if(DEFINED DBUS_LIBRARY_REVISION)
diff --git a/dbus/dbus-internals.c b/dbus/dbus-internals.c
index 18db69ee8..7dd9a5c65 100644
--- a/dbus/dbus-internals.c
+++ b/dbus/dbus-internals.c
@@ -527,7 +527,11 @@ _dbus_trace_ref (const char *obj_name,
* @returns newly-allocated copy.
*/
char*
+#if DBUS_MEMORY_DEBUG
+__dbus_strdup (const char *str, char *file, int line)
+#else
_dbus_strdup (const char *str)
+#endif
{
size_t len;
char *copy;
@@ -537,7 +541,11 @@ _dbus_strdup (const char *str)
len = strlen (str);
+#if DBUS_MEMORY_DEBUG
+ copy = _dbus_malloc (len + 1, file, line);
+#else
copy = dbus_malloc (len + 1);
+#endif
if (copy == NULL)
return NULL;
diff --git a/dbus/dbus-internals.h b/dbus/dbus-internals.h
index 7ec77e515..225a987fd 100644
--- a/dbus/dbus-internals.h
+++ b/dbus/dbus-internals.h
@@ -242,9 +242,15 @@ _dbus_assert_error_is_clear (const DBusError *error)
#define _DBUS_ALIGN_ADDRESS(this, boundary) \
((void*)_DBUS_ALIGN_VALUE(this, boundary))
+#if DBUS_MEMORY_DEBUG
+#define _dbus_strdup(s) __dbus_strdup(s, __FILE__, __LINE__)
DBUS_PRIVATE_EXPORT
+char* __dbus_strdup (const char *str, char *file, int line);
+#else
+DBUS_PRIVATE_EXPORT
char* _dbus_strdup (const char *str);
+#endif
void* _dbus_memdup (const void *mem,
size_t n_bytes);
DBUS_PRIVATE_EXPORT
diff --git a/dbus/dbus-memory.c b/dbus/dbus-memory.c
index 1a77d1f64..bdefff6ad 100644
--- a/dbus/dbus-memory.c
+++ b/dbus/dbus-memory.c
@@ -666,7 +666,7 @@ _dbus_realloc (void *memory,
return NULL;
}
dbus_track_free (((unsigned char*)memory) - GUARD_START_OFFSET);
- dbus_track_realloc (((unsigned char*)memory) - GUARD_START_OFFSET, bytes + GUARD_EXTRA_SIZE, file, line);
+ dbus_track_realloc (block, bytes + GUARD_EXTRA_SIZE, file, line);
old_bytes = *(dbus_uint32_t*)block;
if (bytes >= old_bytes)