This patch spawns from this game engine issue:
[blender-staging.git] / intern / memutil / MEM_CacheLimiter.h
index 3026e827c3f2e2721d0e619df676e7411dcf7eca..13fb6b23446a021b0930444ce76e0b5e36d382cc 100644 (file)
@@ -66,6 +66,9 @@ class MEM_CacheLimiter;
 extern "C" {
        extern void MEM_CacheLimiter_set_maximum(int m);
        extern int MEM_CacheLimiter_get_maximum();
+        // this is rather _ugly_!
+        extern int mem_in_use;
+       extern int mmap_in_use;
 };
 #endif
 
@@ -141,15 +144,12 @@ public:
                delete handle;
        }
        void enforce_limits() {
-               // this is rather _ugly_!
-               extern int mem_in_use;
-
                int max = MEM_CacheLimiter_get_maximum();
                if (max == 0) {
                        return;
                }
                for (iterator it = queue.begin(); 
-                    it != queue.end() && mem_in_use > max;) {
+                    it != queue.end() && mem_in_use + mmap_in_use > max;) {
                        iterator jt = it;
                        ++it;
                        (*jt)->destroy_if_possible();