[Webkit-unassigned] [Bug 29187] Don't inline ~ListRefPtr() to workaround winscw compiler forward declaration limitation.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Sep 16 11:58:19 PDT 2009
https://bugs.webkit.org/show_bug.cgi?id=29187
--- Comment #9 from Yongjun Zhang <yongjun.zhang at nokia.com> 2009-09-16 11:58:18 PDT ---
(In reply to comment #6)
Thanks a lot, Eric.
> Also, this needs a comment in the code and a link to the winscw bug.
I will modify the patch as suggested.
> What is being forward declared here that winscw can't understand?
Class FontFamily (in WebCore/platform/graphics) has member "
ListRefPtr<SharedFontFamily> m_next". SharedFontFamily is forward declared but
winscw compiler complains it is not enough to resolve SharedFontFamily::ref(),
when ~ListRefPtr is inlined in the implicit default dtor of FontFamily (which
is inlined too).
To summerize how this happens:
1. ~FontFamily() is inlined, the compiler tries to resolve ~ListRefPtr() from
inside.
2. ~ListRefPtr() has line "RefPtr<T> reaper = this->release();",
which calls the ctr RefPtr<T>::RefPtr(T*), where ref() is called. Winscw
compiler tries to resolve T::ref() when ~ListRefPtr() is inlined, and it fails
if class T is not defined before that.
--
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