[Python-checkins] r42703 - python/branches/tim-obmalloc/Objects/obmalloc.c

tim.peters python-checkins at python.org
Wed Mar 1 01:25:13 CET 2006


Author: tim.peters
Date: Wed Mar  1 01:25:12 2006
New Revision: 42703

Modified:
   python/branches/tim-obmalloc/Objects/obmalloc.c
Log:
Simplification and reformatting.


Modified: python/branches/tim-obmalloc/Objects/obmalloc.c
==============================================================================
--- python/branches/tim-obmalloc/Objects/obmalloc.c	(original)
+++ python/branches/tim-obmalloc/Objects/obmalloc.c	Wed Mar  1 01:25:12 2006
@@ -256,7 +256,7 @@
 	uptr address;
 
 	/* Pool-aligned pointer to the next pool to be carved off. */
-	block* base_address;
+	block* pool_address;
 
 	/* The number of available pools in the arena:  free pools + never-
 	 * allocated pools.
@@ -579,13 +579,13 @@
 #endif
 	/* base_address <- first pool-aligned address in the arena
 	   nfreepools <- number of whole pools that fit after alignment */
-	arenaobj->base_address = (block*)arenaobj->address;
+	arenaobj->pool_address = (block*)arenaobj->address;
 	arenaobj->nfreepools = ARENA_SIZE / POOL_SIZE;
 	assert(POOL_SIZE * arenaobj->nfreepools == ARENA_SIZE);
 	excess = (uint)((Py_uintptr_t)arenaobj->address & POOL_SIZE_MASK);
 	if (excess != 0) {
 		--arenaobj->nfreepools;
-		arenaobj->base_address += POOL_SIZE - excess;
+		arenaobj->pool_address += POOL_SIZE - excess;
 	}
 	arenaobj->ntotalpools = arenaobj->nfreepools;
 
@@ -758,24 +758,27 @@
 			/* This moves the arena *towards* the head of the list
 			but it is already at the head of the list: do nothing */
 			/* XXX what did that mean? */
-			/* XXX reformat very long lines below */
-			usable_arenas->nfreepools --;
+			--usable_arenas->nfreepools;
 			if (usable_arenas->nfreepools == 0) {
+				/* Unlink the arena: it's completely
+				 * allocated.
+				 */
 				assert(usable_arenas->freepools == NULL);
-				assert(usable_arenas->nextarena == NULL
-					|| usable_arenas->nextarena->prevarena == usable_arenas);
+				assert(usable_arenas->nextarena == NULL ||
+				       usable_arenas->nextarena->prevarena ==
+					   usable_arenas);
 
-				/* Unlink the arena: it is completely
-				allocated. This is a dequeue from the
-				head operation. */
 				usable_arenas = usable_arenas->nextarena;
-				if (usable_arenas != NULL)
+				if (usable_arenas != NULL) {
 					usable_arenas->prevarena = NULL;
-				assert(usable_arenas == NULL || usable_arenas->address != (uptr) NULL);
+					assert(usable_arenas->address != 0);
+				}
 			}
 			else {
-				assert(usable_arenas->freepools != NULL
-					|| usable_arenas->base_address <= ((block*) usable_arenas->address) + ARENA_SIZE - POOL_SIZE);
+				assert(usable_arenas->freepools != NULL ||
+				       usable_arenas->pool_address <=
+				           ((block*) usable_arenas->address) +
+				               ARENA_SIZE - POOL_SIZE);
 			}
 		init_pool:
 			/*
@@ -813,46 +816,38 @@
 			UNLOCK();
 			return (void *)bp;
 		}
-		/*
-		 * Allocate new pool
-		 */
+		/* Allocate new pool. */
 		assert(usable_arenas->nfreepools > 0);
-		if (usable_arenas->nfreepools) {
-			/* Verify that the arenabase address is in range. */
-			/* XXX This assert appears to be equivalent to
-			   assert(POOL_SIZE <= ARENA_SIZE); what's it
-			   _trying_ to check?
-			*/
-			assert(usable_arenas->base_address <=
-			       usable_arenas->base_address +
-			       ARENA_SIZE - POOL_SIZE);
-			pool = (poolp)usable_arenas->base_address;
-			pool->arenaindex = usable_arenas - arenas;
-			assert(&arenas[pool->arenaindex] ==
-			       usable_arenas);
-			pool->szidx = DUMMY_SIZE_IDX;
-
-			--usable_arenas->nfreepools;
-			usable_arenas->base_address += POOL_SIZE;
-
-			if (usable_arenas->nfreepools == 0) {
-				assert(usable_arenas->nextarena ==
-				       NULL ||
-				       usable_arenas->nextarena->prevarena ==
-				       usable_arenas);
-
-				/* Unlink the arena: it is completely
-				 * allocated.
-				 */
-				usable_arenas = usable_arenas->nextarena;
-				if (usable_arenas != NULL)
-					usable_arenas->prevarena = NULL;
-				assert(usable_arenas == NULL ||
-				       usable_arenas->address != 0);
+		/* Verify that the arenabase address is in range. */
+		/* XXX This assert appears to be equivalent to
+		   assert(POOL_SIZE <= ARENA_SIZE); what's it
+		   _trying_ to check?
+		*/
+		assert(usable_arenas->pool_address <=
+		       usable_arenas->pool_address +
+		       ARENA_SIZE - POOL_SIZE);
+		pool = (poolp)usable_arenas->pool_address;
+		pool->arenaindex = usable_arenas - arenas;
+		assert(&arenas[pool->arenaindex] ==
+		       usable_arenas);
+		pool->szidx = DUMMY_SIZE_IDX;
+
+		--usable_arenas->nfreepools;
+		usable_arenas->pool_address += POOL_SIZE;
+
+		if (usable_arenas->nfreepools == 0) {
+			assert(usable_arenas->nextarena == NULL ||
+			       usable_arenas->nextarena->prevarena ==
+			       	   usable_arenas);
+			/* Unlink the arena:  it is completely allocated. */
+			usable_arenas = usable_arenas->nextarena;
+			if (usable_arenas != NULL) {
+				usable_arenas->prevarena = NULL;
+				assert(usable_arenas->address != 0);
 			}
-
-			goto init_pool;
 		}
+
+		goto init_pool;
 	}
 
         /* The small block allocator ends here. */
@@ -1618,9 +1613,9 @@
 		}
 
 		/* visit every pool in the arena */
-		assert(base <= (uptr) arenas[i].base_address);
+		assert(base <= (uptr) arenas[i].pool_address);
 		for (j = 0;
-			    base < (uptr) arenas[i].base_address;
+			    base < (uptr) arenas[i].pool_address;
 			    ++j, base += POOL_SIZE) {
 			poolp p = (poolp)base;
 			const uint sz = p->szidx;


More information about the Python-checkins mailing list