[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

rjw rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:03:12 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 8e1067cfd97efc63522d5518a7c039a5eefebfbc
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Apr 5 18:56:23 2002 +0000

    i        Implemented the same lazily deallocation scheme on frame as in controller
            and data source.
            More bulletproofing to deal with cleanup during deallocation.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@973 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index a163e83..7c7849e 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,10 @@
+2002-04-05  Richard Williamson  <rjw at apple.com>
+
+        More bulletproofing to deal with cleanup during deallocation.
+        
+	* src/kdelibs/khtml/html/htmlparser.cpp: (KHTMLParser::popOneBlock):
+	* src/kdelibs/khtml/html/htmltokenizer.cpp: (HTMLTokenizer::processToken):
+
 2002-04-05  Maciej Stachowiak  <mjs at apple.com>
 
 	* src/kwq/qt/qmap.h (QMapNode::~QMapNode): Cast left() and right()
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index a163e83..7c7849e 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,10 @@
+2002-04-05  Richard Williamson  <rjw at apple.com>
+
+        More bulletproofing to deal with cleanup during deallocation.
+        
+	* src/kdelibs/khtml/html/htmlparser.cpp: (KHTMLParser::popOneBlock):
+	* src/kdelibs/khtml/html/htmltokenizer.cpp: (HTMLTokenizer::processToken):
+
 2002-04-05  Maciej Stachowiak  <mjs at apple.com>
 
 	* src/kwq/qt/qmap.h (QMapNode::~QMapNode): Cast left() and right()
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index a163e83..7c7849e 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,10 @@
+2002-04-05  Richard Williamson  <rjw at apple.com>
+
+        More bulletproofing to deal with cleanup during deallocation.
+        
+	* src/kdelibs/khtml/html/htmlparser.cpp: (KHTMLParser::popOneBlock):
+	* src/kdelibs/khtml/html/htmltokenizer.cpp: (HTMLTokenizer::processToken):
+
 2002-04-05  Maciej Stachowiak  <mjs at apple.com>
 
 	* src/kwq/qt/qmap.h (QMapNode::~QMapNode): Cast left() and right()
diff --git a/WebCore/khtml/html/htmlparser.cpp b/WebCore/khtml/html/htmlparser.cpp
index 1b4d5bb..6877cee 100644
--- a/WebCore/khtml/html/htmlparser.cpp
+++ b/WebCore/khtml/html/htmlparser.cpp
@@ -1167,8 +1167,15 @@ void KHTMLParser::popOneBlock()
 #if SPEED_DEBUG < 1
     if((Elem->node != current)) {
         if (current->maintainsState()) {
+#ifdef APPLE_CHANGES
+            if (document->document()){
+                QString state(document->document()->nextState());
+                if (!state.isNull()) current->restoreState(state);
+            }
+#else
             QString state(document->document()->nextState());
             if (!state.isNull()) current->restoreState(state);
+#endif
         }
         if (current->renderer())
             current->renderer()->close();
diff --git a/WebCore/khtml/html/htmltokenizer.cpp b/WebCore/khtml/html/htmltokenizer.cpp
index 961290e..501f5d2 100644
--- a/WebCore/khtml/html/htmltokenizer.cpp
+++ b/WebCore/khtml/html/htmltokenizer.cpp
@@ -1513,7 +1513,15 @@ void HTMLTokenizer::finish()
 
 void HTMLTokenizer::processToken()
 {
-    KJSProxy *jsProxy = view ? view->part()->jScript() : 0L;
+    KJSProxy *jsProxy;
+    
+#ifdef APPLE_CHANGES
+    if (view && view->part())
+        jsProxy = view->part()->jScript();
+    else
+        jsProxy = 0L;
+#endif
+    
     if (jsProxy)
         jsProxy->setEventHandlerLineno(tagStartLineno);
     if ( dest > buffer )
diff --git a/WebCore/src/kdelibs/khtml/html/htmlparser.cpp b/WebCore/src/kdelibs/khtml/html/htmlparser.cpp
index 1b4d5bb..6877cee 100644
--- a/WebCore/src/kdelibs/khtml/html/htmlparser.cpp
+++ b/WebCore/src/kdelibs/khtml/html/htmlparser.cpp
@@ -1167,8 +1167,15 @@ void KHTMLParser::popOneBlock()
 #if SPEED_DEBUG < 1
     if((Elem->node != current)) {
         if (current->maintainsState()) {
+#ifdef APPLE_CHANGES
+            if (document->document()){
+                QString state(document->document()->nextState());
+                if (!state.isNull()) current->restoreState(state);
+            }
+#else
             QString state(document->document()->nextState());
             if (!state.isNull()) current->restoreState(state);
+#endif
         }
         if (current->renderer())
             current->renderer()->close();
diff --git a/WebCore/src/kdelibs/khtml/html/htmltokenizer.cpp b/WebCore/src/kdelibs/khtml/html/htmltokenizer.cpp
index 961290e..501f5d2 100644
--- a/WebCore/src/kdelibs/khtml/html/htmltokenizer.cpp
+++ b/WebCore/src/kdelibs/khtml/html/htmltokenizer.cpp
@@ -1513,7 +1513,15 @@ void HTMLTokenizer::finish()
 
 void HTMLTokenizer::processToken()
 {
-    KJSProxy *jsProxy = view ? view->part()->jScript() : 0L;
+    KJSProxy *jsProxy;
+    
+#ifdef APPLE_CHANGES
+    if (view && view->part())
+        jsProxy = view->part()->jScript();
+    else
+        jsProxy = 0L;
+#endif
+    
     if (jsProxy)
         jsProxy->setEventHandlerLineno(tagStartLineno);
     if ( dest > buffer )
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 2ba2f7a..a1bd2e7 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,11 @@
+2002-04-05  Richard Williamson  <rjw at apple.com>
+
+        Implemented the same lazily deallocation scheme on frame as in controller
+        and data source.
+        
+	* WebView.subproj/IFWebFrame.mm: (-[_IFFrameHolder initWithObject:]),
+	(-[_IFFrameHolder _checkReadyToDealloc:]), (-[IFWebFrame release]):
+
 2002-04-04  Richard Williamson  <rjw at apple.com>
 
         Clear controller references from data source and view, as well as 
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 2ba2f7a..a1bd2e7 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,11 @@
+2002-04-05  Richard Williamson  <rjw at apple.com>
+
+        Implemented the same lazily deallocation scheme on frame as in controller
+        and data source.
+        
+	* WebView.subproj/IFWebFrame.mm: (-[_IFFrameHolder initWithObject:]),
+	(-[_IFFrameHolder _checkReadyToDealloc:]), (-[IFWebFrame release]):
+
 2002-04-04  Richard Williamson  <rjw at apple.com>
 
         Clear controller references from data source and view, as well as 
diff --git a/WebKit/WebView.subproj/IFWebFrame.mm b/WebKit/WebView.subproj/IFWebFrame.mm
index 66f200a..c9089af 100644
--- a/WebKit/WebView.subproj/IFWebFrame.mm
+++ b/WebKit/WebView.subproj/IFWebFrame.mm
@@ -16,6 +16,30 @@
 #include <KWQKHTMLPart.h>
 #include <rendering/render_frames.h>
 
+ at interface _IFFrameHolder : NSObject
+{
+    id object;
+}
+- initWithObject: o;
+- (void)_checkReadyToDealloc: userInfo;
+ at end
+ at implementation _IFFrameHolder
+- initWithObject: o
+{
+    object = o;	// Non-retained
+    return [super init];
+}
+
+- (void)_checkReadyToDealloc: userInfo
+{
+    if ([object dataSource] == nil || ![[object dataSource] isLoading])
+        [object dealloc];
+    else {
+        [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector: @selector(_checkReadyToDealloc:) userInfo: nil repeats:FALSE];
+    }
+}
+ at end
+
 @implementation IFWebFrame
 
 - init
@@ -51,6 +75,17 @@
     return self; 
 }
 
+- (oneway void)release {
+    if ([self retainCount] == 1){
+        _IFFrameHolder *ch = [[[_IFFrameHolder alloc] initWithObject: self] autorelease];
+        [self stopLoading];
+        [NSTimer scheduledTimerWithTimeInterval:1.0 target:ch selector: @selector(_checkReadyToDealloc:) userInfo: nil repeats:FALSE];
+        return;
+    }
+    [super release];
+}
+
+
 - (void)dealloc
 {
     [_framePrivate release];
diff --git a/WebKit/WebView.subproj/WebFrame.m b/WebKit/WebView.subproj/WebFrame.m
index 66f200a..c9089af 100644
--- a/WebKit/WebView.subproj/WebFrame.m
+++ b/WebKit/WebView.subproj/WebFrame.m
@@ -16,6 +16,30 @@
 #include <KWQKHTMLPart.h>
 #include <rendering/render_frames.h>
 
+ at interface _IFFrameHolder : NSObject
+{
+    id object;
+}
+- initWithObject: o;
+- (void)_checkReadyToDealloc: userInfo;
+ at end
+ at implementation _IFFrameHolder
+- initWithObject: o
+{
+    object = o;	// Non-retained
+    return [super init];
+}
+
+- (void)_checkReadyToDealloc: userInfo
+{
+    if ([object dataSource] == nil || ![[object dataSource] isLoading])
+        [object dealloc];
+    else {
+        [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector: @selector(_checkReadyToDealloc:) userInfo: nil repeats:FALSE];
+    }
+}
+ at end
+
 @implementation IFWebFrame
 
 - init
@@ -51,6 +75,17 @@
     return self; 
 }
 
+- (oneway void)release {
+    if ([self retainCount] == 1){
+        _IFFrameHolder *ch = [[[_IFFrameHolder alloc] initWithObject: self] autorelease];
+        [self stopLoading];
+        [NSTimer scheduledTimerWithTimeInterval:1.0 target:ch selector: @selector(_checkReadyToDealloc:) userInfo: nil repeats:FALSE];
+        return;
+    }
+    [super release];
+}
+
+
 - (void)dealloc
 {
     [_framePrivate release];

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list