KeyframeList(RenderObject*, const AtomicString&) is implemented in KeyframeList.h, and it calls KeyframeList::insert(float, PassRefPtr<RenderStyle>); the compiler tries to aggressively resolve RenderStyle::ref() in PassRefPtr<T>::PassRefPtr(T*) ctr, and it complains "illegal use of incomplete class" if RenderStyle.h is not included. In AnimationBase.h, setAnimation(..) is inlined and RefPtr<T>::operator=(T*) is called in this function which fails to resolve Animation::ref(). One idea is to not inline ref() call in PassRefPtr and RefPtr, as suggested by https://bugs.webkit.org/show_bug?id=28054#c15 . But this requires changes RefPtr & PassRefPtr and it is not ideal (see comment https://bugs.webkit.org/show_bug?id=28054#c17). It looks like only those two files uses inlined ref via RefPtr & PassRefPtr in header files. As a less intrusive way we can move the implementation of these two functions to respective cpp files.
sorry, the comment url should be: https://bugs.webkit.org/show_bug.cgi?id=28054#c15 and https://bugs.webkit.org/show_bug.cgi?id=28054#c17
Created attachment 39472 [details] Move setAnimation() and KeyframeList() ctor to respective cpp files.
Comment on attachment 39472 [details] Move setAnimation() and KeyframeList() ctor to respective cpp files. Why are these changes needed? And why are we supporting this broken compiler... ;) The number of fixes needed to make winscw work seems to be growing without bound. r-. We need more explanation for each of these (seemingly arbitrary) changes, and ideally links to compiler bugs you've filed with the winscw folks.
(In reply to comment #3) > (From update of attachment 39472 [details]) Thanks a lot for the comment, Eric. > Why are these changes needed? And why are we supporting this broken compiler... Winscw compiler (based on Codewarrior) is used in building apps running in S60 emulator, so far that is the only available emulator compiler for us :-( > ;) The number of fixes needed to make winscw work seems to be growing without > bound. We fully understand the concern; and we tried hard to make sure the changes are minimum and really necessary. Good news is all the winscw patches are submitted for review and looks like there won't be any further patches for this issue any more. > r-. We need more explanation for each of these (seemingly arbitrary) changes, > and ideally links to compiler bugs you've filed with the winscw folks. There is a bug for it in winscw compiler bugzilla (https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=9812). It is essentially the same issue as https://bugs.webkit.org/show_bug?id=28054 except it is caused by ref(), not deref().
WinSCW support is no longer an issue as Symbian support has been removed from WebKit trunk.