From 503c8f5296a335e31f00a28b65dc319d0759635a Mon Sep 17 00:00:00 2001 From: "dbaron%dbaron.org" Date: Wed, 14 Feb 2007 07:07:51 +0000 Subject: [PATCH] Make trace-malloc dumps not print '(nil)' instead of an address. b=331743 (fixing regression from previous patch) git-svn-id: svn://10.0.0.236/trunk@220108 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/tools/trace-malloc/adreader.cpp | 12 +++++++----- mozilla/tools/trace-malloc/lib/nsTraceMalloc.c | 9 +++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/mozilla/tools/trace-malloc/adreader.cpp b/mozilla/tools/trace-malloc/adreader.cpp index b1798cdadcd..d960ddc1d75 100644 --- a/mozilla/tools/trace-malloc/adreader.cpp +++ b/mozilla/tools/trace-malloc/adreader.cpp @@ -80,12 +80,14 @@ ADLog::Read(const char* aFileName) return false; } - char *data = (char*)malloc(((datasize+3)/4)*4); + size_t data_mem_size = ((datasize + sizeof(unsigned long) - 1) / + sizeof(unsigned long)) * sizeof(unsigned long); + char *data = (char*)malloc(data_mem_size); - for (char *cur_data = data, - *cur_data_end = data + ((datasize+3)/4)*4; - cur_data != cur_data_end; cur_data += 4) { - res = fscanf(in, " %x\n", (unsigned int*)cur_data); + for (unsigned long *cur_data = (unsigned long*) data, + *cur_data_end = (unsigned long*) ((char*)data + data_mem_size); + cur_data != cur_data_end; ++cur_data) { + res = fscanf(in, " %lX\n", cur_data); if (res != 1) { return false; } diff --git a/mozilla/tools/trace-malloc/lib/nsTraceMalloc.c b/mozilla/tools/trace-malloc/lib/nsTraceMalloc.c index 015b5b67c33..7f67bc51368 100644 --- a/mozilla/tools/trace-malloc/lib/nsTraceMalloc.c +++ b/mozilla/tools/trace-malloc/lib/nsTraceMalloc.c @@ -2172,16 +2172,17 @@ allocation_enumerator(PLHashEntry *he, PRIntn i, void *arg) callsite *site = (callsite*) he->value; extern const char* nsGetTypeName(const void* ptr); - void **p, **end; + unsigned long *p, *end; fprintf(ofp, "%p <%s> (%lu)\n", he->key, nsGetTypeName(he->key), (unsigned long) alloc->size); - end = (void**)(((char*) he->key) + alloc->size); - for (p = (void**)he->key; p < end; ++p) - fprintf(ofp, "\t%p\n", *p); + for (p = (unsigned long*) he->key, + end = (unsigned long*) ((char*)he->key + alloc->size); + p < end; ++p) + fprintf(ofp, "\t0x%08lX\n", *p); while (site) { if (site->name || site->parent) {