dix: cache ResourceClientBits() value
The `LimitClient` is set once and for all at startup, whereas the function `ResourceClientBits()` which returns the client field offset within the XID based on the value of `LimitClient` can be called repeatedly. Small optimization, cache the result of `ilog2()`, that saves running the same loop over and over each time `ResourceClientBits()` is called. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
This commit is contained in:
		
							parent
							
								
									48b1af2718
								
							
						
					
					
						commit
						c731165402
					
				|  | @ -620,7 +620,12 @@ ilog2(int val) | ||||||
| unsigned int | unsigned int | ||||||
| ResourceClientBits(void) | ResourceClientBits(void) | ||||||
| { | { | ||||||
|     return (ilog2(LimitClients)); |     static unsigned int cached = 0; | ||||||
|  | 
 | ||||||
|  |     if (cached == 0) | ||||||
|  |       cached = ilog2(LimitClients); | ||||||
|  | 
 | ||||||
|  |     return cached; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*****************
 | /*****************
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue