shithub: mc

Download patch

ref: 52f3611a79a3c494525e9a80a2e4709729782e0d
parent: b3fc7da382866c42c479bba974c1c7f72fb4b684
author: Ori Bernstein <[email protected]>
date: Wed Jul 25 10:02:24 EDT 2012

Unmap unused and uncached slabs.

--- a/alloc.myr
+++ b/alloc.myr
@@ -60,7 +60,7 @@
 	;;
 
 	if (sz <= Bucketmax)
-		bkt = &buckets[bucketnum(sz)]
+		bkt = &buckets[bktnum(sz)]
 		-> bktalloc(bkt)
 	else
 		-> mmap(Zbyte, sz, Mprotrw, Mpriv | Manon, -1, 0)
@@ -71,7 +71,7 @@
 	var bkt
 
 	if (sz < Bucketmax)
-		bkt = &buckets[bucketnum(sz)]
+		bkt = &buckets[bktnum(sz)]
 		bktfree(bkt, m)
 	else
 		munmap(m, sz)
@@ -159,7 +159,7 @@
 			s.next = bkt.cache
 			bkt.cache = s
 		else
-			delslab(s)
+			munmap(s castto(byte*), Pagesz)
 		;;
 	;;
 	s.nfree++
@@ -167,11 +167,7 @@
 	s.freehd = b
 }
 
-const delslab = {s : slab*
-
-}
-
-const bucketnum = {sz
+const bktnum = {sz
 	var i
 	var bktsz