On Mar 29, 2010, at 1:10 PM, Eric Seidel wrote:

> http://trac.webkit.org/changeset/38411 mentions the GCC bug I was referring 
> to.  I've never seen the Radar so I don't know what it was about exactly.

I see where the confusion is coming from. The GCC bug is not the reason we have 
DEFINE_STATIC_LOCAL. Rather, it’s a bug that constrains the implementation of 
DEFINE_STATIC_LOCAL.

Originally we had a version of the macro that looked like this:

    #define DEFINE_STATIC_LOCAL(type, name, arguments) static type& name = *new 
type arguments;

That won’t work because of the GCC bug. Instead we have this:

    #define DEFINE_STATIC_LOCAL(type, name, arguments) \
        static type* name##Ptr = new type arguments; \
        type& name = *name##Ptr

Using a macro for this purpose both lets us have that workaround for the GCC 
bug and also makes it possible to experiment with other WebKit-wide changes to 
this static global strategy.

    -- Darin

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to