Revision: 24467
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24467
Author:   theeth
Date:     2009-11-10 22:33:53 +0100 (Tue, 10 Nov 2009)

Log Message:
-----------
New function:

void MEM_callbackmemlist(void (*func)(void*));

Will call the function passed as argument with all allocated address as 
parameter. Useful for debuging.

Modified Paths:
--------------
    trunk/blender/intern/guardedalloc/MEM_guardedalloc.h
    trunk/blender/intern/guardedalloc/intern/mallocn.c

Modified: trunk/blender/intern/guardedalloc/MEM_guardedalloc.h
===================================================================
--- trunk/blender/intern/guardedalloc/MEM_guardedalloc.h        2009-11-10 
20:50:34 UTC (rev 24466)
+++ trunk/blender/intern/guardedalloc/MEM_guardedalloc.h        2009-11-10 
21:33:53 UTC (rev 24467)
@@ -102,6 +102,9 @@
         * 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);
        

Modified: trunk/blender/intern/guardedalloc/intern/mallocn.c
===================================================================
--- trunk/blender/intern/guardedalloc/intern/mallocn.c  2009-11-10 20:50:34 UTC 
(rev 24466)
+++ trunk/blender/intern/guardedalloc/intern/mallocn.c  2009-11-10 21:33:53 UTC 
(rev 24467)
@@ -460,6 +460,24 @@
        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);
 }


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to