Mike Emmel wrote:
Hi all I'm having a strange problem with the linux port and maybe
someone can help.

The problem is that the macros in

khtml/html/htmlnames.cpp  fail under linux

I dumped the cpp code and  I'm getting generated code like the following.

 new ((void*)&abbrTag) QualifiedName(nullAtom, "abbr", xhtmlNS);

Now when I looked at the constructor for QualifiedName it takes as args

QualifiedName::QualifiedName(const AtomicString& p, const
AtomicString& l, const AtomicString& n)

I've experienced this. I think it's g++-4.0 inlining bug.. It happened for me also, exactly at "abbr" tag..

In dom_qname.cpp (I don't know if this has been renamed) there's a hash function

inline unsigned hashComponents(const QualifiedNameComponents& buf)

which I believe will get optimized somehow wrong, and it always hashes to zero. I got it working by adding printf("%x", hash); before the zero comparison :)

Doesn't make sense unless the printf disables some optimization. In my old code there seems also to be 0x80000000u instead of 0x80000000, which I believe was some sort of hazard at trying to make sure that signedness+bigendian/little endian differences don't matter..

I know this sounds rediculous, but try it if you don't have any other clues. My compiler was (GCC) 4.0.2 20050728 (prerelease) [FreeBSD]..

Kimmo


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

Reply via email to