Reviewed by Eric.
authortomernic <tomernic@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 28 Mar 2006 04:26:14 +0000 (04:26 +0000)
committertomernic <tomernic@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 28 Mar 2006 04:26:14 +0000 (04:26 +0000)
        <rdar://problem/3694090> -[WebBaseNetscapePluginView finalize] is incorrect; design change needed

        * ChangeLog:
        * Plugins/WebBaseNetscapePluginView.m:
        (-[WebBaseNetscapePluginView dealloc]):
        Instead of calling -stop, assert that the plugin is not running.  A plugin view cannot be deallocated
        until it is removed from its window.  When a plugin view is removed from its window, it calls -stop
        on itself.  Therefore I believe that this call to -stop is unnecessary; if I'm wrong, then the
        assertion will help catch any edge cases.
        (-[WebBaseNetscapePluginView finalize]):
        ditto

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

WebKit/ChangeLog
WebKit/Plugins/WebBaseNetscapePluginView.m

index 4258375c858b73340996de526e1af93441374804..50b483e314c0c7300da5ce7075c9873129b7e88f 100644 (file)
@@ -1,3 +1,19 @@
+2006-03-27  Tim Omernick  <timo@apple.com>
+
+        Reviewed by Eric.
+
+        <rdar://problem/3694090> -[WebBaseNetscapePluginView finalize] is incorrect; design change needed
+
+        * ChangeLog:
+        * Plugins/WebBaseNetscapePluginView.m:
+        (-[WebBaseNetscapePluginView dealloc]):
+        Instead of calling -stop, assert that the plugin is not running.  A plugin view cannot be deallocated
+        until it is removed from its window.  When a plugin view is removed from its window, it calls -stop
+        on itself.  Therefore I believe that this call to -stop is unnecessary; if I'm wrong, then the
+        assertion will help catch any edge cases.
+        (-[WebBaseNetscapePluginView finalize]):
+        ditto
+
 2006-03-27  Tim Omernick  <timo@apple.com>
 
         Reviewed by Eric.
 2006-03-27  Tim Omernick  <timo@apple.com>
 
         Reviewed by Eric.
index 364741f5c6afeda6cc17542c02871662397f15eb..fa2a5e1950ffd70316abe44753eb81bf2c0cfaa0 100644 (file)
@@ -1216,7 +1216,7 @@ static OSStatus TSMEventHandler(EventHandlerCallRef inHandlerRef, EventRef inEve
 {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     
 {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     
-    [self stop];
+    ASSERT(!isStarted);
 
     [plugin release];
     [streams release];
 
     [plugin release];
     [streams release];
@@ -1233,9 +1233,7 @@ static OSStatus TSMEventHandler(EventHandlerCallRef inHandlerRef, EventRef inEve
 {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
 
 {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
 
-    // FIXME: Bad to stop at finalize time. Need to restructure code
-    // so that we're already stopped before we get to this point.
-    [self stop];
+    ASSERT(!isStarted);
 
     [self freeAttributeKeysAndValues];
 
 
     [self freeAttributeKeysAndValues];