| 
					
				 | 
			
			
				@@ -2268,6 +2268,22 @@ clean_cell_pool(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   mp_pool_clean(cell_pool, 0, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define relay_alloc_cell() \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mp_pool_get(cell_pool) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define relay_free_cell(cell) \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mp_pool_release(cell) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define RELAY_CELL_MEM_COST (sizeof(packed_cell_t) + MP_POOL_ITEM_OVERHEAD) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#else /* !ENABLE_MEMPOOLS case */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define relay_alloc_cell() \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tor_malloc_zero(sizeof(packed_cell_t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define relay_free_cell(cell) \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tor_free(cell) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define RELAY_CELL_MEM_COST (sizeof(packed_cell_t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endif /* ENABLE_MEMPOOLS */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** Release storage held by <b>cell</b>. */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2275,11 +2291,7 @@ static INLINE void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 packed_cell_free_unchecked(packed_cell_t *cell) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   --total_cells_allocated; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#ifdef ENABLE_MEMPOOLS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  mp_pool_release(cell); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  tor_free(cell); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#endif /* ENABLE_MEMPOOLS */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  relay_free_cell(cell); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** Allocate and return a new packed_cell_t. */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2287,11 +2299,7 @@ STATIC packed_cell_t * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 packed_cell_new(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ++total_cells_allocated; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#ifdef ENABLE_MEMPOOLS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  return mp_pool_get(cell_pool); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  return tor_malloc(sizeof(packed_cell_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return relay_alloc_cell(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** Return a packed cell used outside by channel_t lower layer */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2402,11 +2410,7 @@ cell_queue_pop(cell_queue_t *queue) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 size_t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 packed_cell_mem_cost(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#ifdef ENABLE_MEMPOOLS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  return sizeof(packed_cell_t) + MP_POOL_ITEM_OVERHEAD; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  return sizeof(packed_cell_t); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#endif /* ENABLE_MEMPOOLS */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return RELAY_CELL_MEM_COST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** DOCDOC */ 
			 |