[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