[webkit-dev] When to use FastAllocBase?
darin at apple.com
Mon Oct 4 11:46:06 PDT 2010
On Oct 4, 2010, at 11:31 AM, Tony Gentilcore wrote:
> If you subclass RefCounted<T> or Noncopyable, which is very common, you pick up FastAllocBase.
Yes, so in those cases you don’t want to use it.
> So, my naive guess is that any class/struct which doesn't pick up FastAllocBase through its inheritance chain should subclass it directly. Is that a reasonable guideline?
That’s OK, but:
1) FastAllocBase has been causing object size bloat, so we are planning to switch from base classes to macros. See bug 42998 <https://bugs.webkit.org/show_bug.cgi?id=42998>.
2) If the object will not ever be allocated with new, there is no benefit to deriving from FastAllocBase.
3) Our original plan was to that on platforms where ENABLE_GLOBAL_FASTMALLOC_NEW, such as Mac OS X, we would change the operator new to check at runtime and immediately assert in debug builds if someone forgot to use FastAllocBase. But as you can see if you look at FastMalloc.h, this has not been done yet.
So for the moment it’s fine to follow the guideline you mention, but (1) will change how we do it soon, (2) is worth considering, and (3) will eventually make the guideline clearer than it is now because we’ll notice when we do it wrong!
More information about the webkit-dev