[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
Fri Sep 11 21:21:25 PDT 2009


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





--- Comment #5 from Yongjun Zhang <yongjun.zhang at nokia.com>  2009-09-11 21:21:25 PDT ---
(In reply to comment #4)
> (From update of attachment 39449 [details])
> Can you help us understand this limitation more?  Have you filed a bug with the
> winscw folks?  Do they have a public bug tracker?

Sorry I didn't explain it in detail in error description.

~ListRefPtr() has the following 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.

I filed a bug to winscw team:
https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=9812 for similar issue
in https://bugs.webkit.org/show_bug.cgi?id=28054.

Janne, you are right.  If we don't inline the ctor and assignment operator in
RefPtr.h, this problem could be resolved.

There is another patch trying to address the same issue for KeyframeList and
AnimationBase (https://bugs.webkit.org/show_bug.cgi?id=29204).  And it could be
also resolved by removing inline for PassRefPtr's ctor and assignment operator.

Therefore, if we change PassRefPtr & RefPtr's ctor and assignement operator, we
can avoid making changes in other places.

Eric, do you think it is a better approach?

-- 
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