[webkit-dev] Compile-time assertions for object sizes

Simon Fraser simon.fraser at apple.com
Thu Sep 29 12:11:09 PDT 2011


On Sep 29, 2011, at 11:40 AM, Andreas Kling wrote:

> Dear WebKittens,
> 
> I'd like to add some compile-time assertions for the sizes of various objects. The motivation comes a patch fixing bloat in InlineBox[1].
> 
> There are two major problems with this:
> 
> 1. The sizes will differ on 32- and 64-bit platforms.
> 2. The sizes will differ based on compiler flags.
> 
> One idea is to add a file that would only be built on (for example) 64-bit Mac and then at least that bot would break if an object changes size. That's obviously not ideal though.
> 
> Any suggestions? :)

You could group the bits together into a struct:

  struct {
    m_foo: 1;
    m_bar: 1;
    ...
  } m_bits;

COMPILE_ASSERT(sizeof(m_bits) <= sizeof(uint32_t), Too_many_bits);

This wouldn't' be sensitive to architecture.

Simon



More information about the webkit-dev mailing list