On Sep 1, 2010, at 4:39 PM, Maciej Stachowiak wrote:

> 
> On Sep 1, 2010, at 4:20 PM, Chris Marrin wrote:
> 
>> 
>> Ken's PODRedBlackTree patch has made me go back and take a closer look at 
>> WebKit's Arena "class". Turns out it's not a class at all, just some structs 
>> and macros. That seems very un-WebKit-like to me. Ken's patch also has a 
>> PODArena class, which uses Arena in its implementation. Sam suggests that 
>> PODRedBlackTree should really go into WTF, which means PODArena and Arena 
>> would need to go there as well.
>> 
>> It seems like Arena really needs to be brought into the 21st century and 
>> made a proper class. Maybe now is the right time to:
>> 
>> 1) Make Arena a class
>> 
>> 2) Integrate Ken's PODArena functionality into this new Arena class (or 
>> maybe just make Ken's PODArena the new Arena class).
>> 
>> 3) Move the new Arena class to WTF
>> 
>> 4) Put PODRedBlackTree in WTF
>> 
>> It looks like RenderArena is currently the only client of Arena.h, so this 
>> change shouldn't be too hard. Of course, looking at RenderArena, it's a 
>> little odd, too. It is not renderer specific at all. It's just an Arena that 
>> recycles freed objects. Maybe we should move that functionality into the new 
>> Arena class. But RenderArena is used all over the place, so maybe that's 
>> going one step too far down this road?
> 
> Arena was imported from Mozilla and could certainly benefit from 
> modernization. For the rendering use case though, it is essential to handle 
> non-POD types correctly.

But RenderArena doesn't deal with types at all, does it? It just allocs and 
free's void*'s. It's not even a template class. So maybe we should have an 
Arena class which deals with void*'s and a PODArena template class which lets 
you type arena objects? RenderArena would use the Arena class.

-----
~Chris
cmar...@apple.com




_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to