[Patch] Convert pool_allocator

Dhruv Matani dhruvbird@gmx.net
Mon Mar 22 09:43:00 GMT 2004


On Sun, 2004-03-21 at 22:54, Paolo Carlini wrote:
> Hi all, hi Benjamin,
> 
> eventually I went ahead and converted __pool_alloc according to the
> original plan:
> 
>   http://gcc.gnu.org/ml/libstdc++/2003-12/msg00270.html
> 
> Basically, enabling it at configure time leads to a behavior which is
> (supposed to be) identical to that of 3.3 default allocator.
> 
> Of course, we can consider tweaking it further for MT/not, but I think
> its real virtue is stability in providing a baseline form of "pooling"
> against which more sophisticated ideas will be compared.
> 
> Regtested x86/x86_64/ia64 linux, also checked that on ia64 no runtime
> alignement warnings are issued.
> 
> I will commit to mainline tomorrow morning, if nobody objects.

I have a few things to say:

1. This allocator maintains a per-type pool as opposed to a global only
one pool for all types scheme, which I suspect was the original
intention.

2. The check in the allocate function for __n could be removed, because
the standard does not say anything, so we may assume undefined behaviour
if __n is 0.

3. There is a line:
if (__builtin_expect(__ret == 0, 0))
__throw_bad_alloc();

Which may be safely removed.




-- 
	-Dhruv Matani.
http://www.geocities.com/dhruvbird/

Proud to be a Vegetarian.
http://www.vegetarianstarterkit.com/
http://www.vegkids.com/vegkids/index.html



More information about the Libstdc++ mailing list