WebCore:
authorthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Feb 2007 22:53:51 +0000 (22:53 +0000)
committerthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Feb 2007 22:53:51 +0000 (22:53 +0000)
        Reviewed by Darin.

        <rdar://problem/4900579> WebKit -finalize methods are not thread-safe; design change needed

        Call WebCoreObjCFinalizeOnMainThread from the initialize method of all the classes
        that have a finalizer that needs called on the main thread.

        * WebCore.exp:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/objc/WebScriptObject.mm:
        (+[WebScriptObject initialize]):
        * bridge/mac/WebCoreScriptDebugger.mm:
        (+[WebCoreScriptDebugger initialize]):
        * platform/mac/SharedBufferMac.mm:
        (+[SharedBufferData initialize]):
        * platform/mac/WebCoreObjCExtras.c: Added.
        (WebCoreObjCFinalizeOnMainThread):
        * platform/mac/WebCoreObjCExtras.h: Added.

WebKit:

        Reviewed by Darin.

        <rdar://problem/4900579> WebKit -finalize methods are not thread-safe; design change needed

        Call WebCoreObjCFinalizeOnMainThread from the initialize method of all the classes
        that have a finalizer that needs called on the main thread. Assert in finalize that we
        are on the main thread.

        * Carbon/CarbonWindowAdapter.m:
        (+[CarbonWindowAdapter initialize]):
        (-[CarbonWindowAdapter finalize]):
        * History/WebBackForwardList.mm:
        (+[WebBackForwardList initialize]):
        (-[WebBackForwardList finalize]):
        * History/WebHistoryItem.mm:
        (+[WebHistoryItem initialize]):
        * Misc/WebElementDictionary.mm:
        (+[WebElementDictionary initialize]):
        (-[WebElementDictionary finalize]):
        * Plugins/WebBaseNetscapePluginStream.m:
        (+[WebBaseNetscapePluginStream initialize]):
        (-[WebBaseNetscapePluginStream finalize]):
        * Plugins/WebBaseNetscapePluginView.mm:
        (+[WebBaseNetscapePluginView initialize]):
        (-[WebBaseNetscapePluginView finalize]):
        * Plugins/WebBasePluginPackage.m:
        (+[WebBasePluginPackage initialize]):
        (-[WebBasePluginPackage finalize]):
        * Plugins/WebNetscapePluginStream.mm:
        (-[WebNetscapePluginStream finalize]):
        * WebCoreSupport/WebEditorClient.mm:
        (+[WebEditCommand initialize]):
        (-[WebEditCommand finalize]):
        * WebCoreSupport/WebFrameBridge.mm:
        (+[WebFrameBridge initialize]):
        (-[WebFrameBridge finalize]):
        * WebCoreSupport/WebFrameLoaderClient.mm:
        (+[WebFramePolicyListener initialize]):
        (-[WebFramePolicyListener finalize]):
        * WebView/WebHTMLView.mm:
        (+[WebHTMLView initialize]):
        (-[WebHTMLView finalize]):
        * WebView/WebView.mm:
        (+[WebViewPrivate initialize]):
        (-[WebViewPrivate finalize]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@19747 268f45cc-cd09-0410-ab3c-d52691b4dbfc


No differences found