Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2009-11-11 00:33:53 +0300
committerMartin Poirier <theeth@yahoo.com>2009-11-11 00:33:53 +0300
commit21385eb4ec03ff07559fbf73722955d39c77bba8 (patch)
tree1c88134ce6c90721cf784b3372f7505f81f2f447 /intern/guardedalloc
parent91446e9aadb756c35071e21bb4654bef2ef2ded1 (diff)
New function:
void MEM_callbackmemlist(void (*func)(void*)); Will call the function passed as argument with all allocated address as parameter. Useful for debuging.
Diffstat (limited to 'intern/guardedalloc')
-rw-r--r--intern/guardedalloc/MEM_guardedalloc.h3
-rw-r--r--intern/guardedalloc/intern/mallocn.c18
2 files changed, 21 insertions, 0 deletions
diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h
index 9e3927314d3..74cc365140f 100644
--- a/intern/guardedalloc/MEM_guardedalloc.h
+++ b/intern/guardedalloc/MEM_guardedalloc.h
@@ -102,6 +102,9 @@ extern "C" {
* blocks. */
void MEM_printmemlist(void);
+ /** calls the function on all allocated memory blocks. */
+ void MEM_callbackmemlist(void (*func)(void*));
+
/** Print statistics about memory usage */
void MEM_printmemlist_stats(void);
diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c
index ca7f2a4d506..ecf89c894d2 100644
--- a/intern/guardedalloc/intern/mallocn.c
+++ b/intern/guardedalloc/intern/mallocn.c
@@ -460,6 +460,24 @@ static void MEM_printmemlist_internal( int pydict )
mem_unlock_thread();
}
+void MEM_callbackmemlist(void (*func)(void*)) {
+ MemHead *membl;
+
+ mem_lock_thread();
+
+ membl = membase->first;
+ if (membl) membl = MEMNEXT(membl);
+
+ while(membl) {
+ func(membl+1);
+ if(membl->next)
+ membl= MEMNEXT(membl->next);
+ else break;
+ }
+
+ mem_unlock_thread();
+}
+
void MEM_printmemlist( void ) {
MEM_printmemlist_internal(0);
}