[Webkit-unassigned] [Bug 133028] Build break of 2.4.1 under mingw32/msys

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat May 24 14:19:17 PDT 2014


https://bugs.webkit.org/show_bug.cgi?id=133028





--- Comment #13 from Milan Crha <mcrha at redhat.com>  2014-05-24 14:19:39 PST ---
Created an attachment (id=232026)
 --> (https://bugs.webkit.org/attachment.cgi?id=232026&action=review)
test.cpp for class sizes

(In reply to comment #11)
> > --- webkitgtk-2.4.1.old/Source/WebCore/rendering/RenderBlock.h	2014-05-16 19:07:53 +0000
> > +++ webkitgtk-2.4.1/Source/WebCore/rendering/RenderBlock.h	2014-05-17 07:38:01 +0000
> > @@ -613,8 +613,8 @@ public:
> >      unsigned m_beingDestroyed : 1;
> >      unsigned m_hasMarkupTruncation : 1;
> >      unsigned m_hasBorderOrPaddingLogicalWidthChanged : 1;
> > -    enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath };
> >      unsigned m_lineLayoutPath : 2;
> > +    enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath };
> 
> You mean that the way this is declared doesn't allow the compiler to
> use one single uint32?

Correct. The version a used gcc in mingw32 in 4.8.1. I wrote this little test.cpp to see what sizes are reported by gcc and the mingw32 shows:
   sizes: Base:1 Sub:8 Sub1:4 Sub2:4 Sub3:4 Sub4:4
while my linux version of gcc 4.8.2 shows:
   sizes: Base:1 Sub:4 Sub1:4 Sub2:4 Sub3:4 Sub4:4
thus the windows windows version has a problem to "join" the bits when the properties are divided with an enum (see the test.cpp for all the variants).

> > --- webkitgtk-2.4.1.old/Source/WebCore/rendering/RenderBlock.cpp	2014-05-16 19:07:53 +0000
> > +++ webkitgtk-2.4.1/Source/WebCore/rendering/RenderBlock.cpp	2014-05-17 07:38:01 +0000
> > @@ -83,6 +83,7 @@ using namespace HTMLNames;
> >
> >  struct SameSizeAsRenderBlock : public RenderBox {
> >      uint32_t bitfields;
> > +    enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath };
> >  };
> 
> I don't understand why you need to declare that enum there again, what
> happens if you don't do it?

I thought it's needed, but you are right, this particular change is not required at all (see the test.cpp).

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list