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

darin darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:57:10 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 934b9b33cc4f0741ca86f6791bf5b18d0e16ef0f
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Nov 5 01:25:54 2002 +0000

    	- fixed 3091714 -- reproducible assert cachedObject->response
    	in KWQCheckCacheObjectStatus
    
            * khtml/misc/loader.cpp: (Loader::slotFinished):
    	For APPLE_CHANGES, don't finish the load if it's an error.
    
            * kwq/KWQResourceLoader.mm:
            (-[KWQResourceLoader finishJobAndHandle]): Shared code for the
    	three following methods.
            (-[KWQResourceLoader cancel]): Use setError(1) again instead of
    	just keeping the load around forever.
            (-[KWQResourceLoader reportError]): Ditto.
            (-[KWQResourceLoader finish]): Use finishJobAndHandle to share
    	code with the two above.
    
            * khtml/khtml_part.cpp:
            (KHTMLPart::init): Put the slotLoaderRequestStarted and
    	slotLoaderRequestDone connect lines inside ifdefs.
            (KHTMLPart::~KHTMLPart): Same for disconnect.
    
            * kwq/KWQSignal.h: Remove code for the DocLoader signals.
            * kwq/KWQSignal.mm: (KWQSignal::call): Ditto.
            * kwq/KWQSignalStubs.mm:
            (Loader::requestDone): Ditto.
            (Loader::requestFailed): Ditto.
            (Loader::requestStarted): Ditto.
            * kwq/KWQSlot.h: Ditto.
            * kwq/KWQSlot.mm:
            (KWQSlot::KWQSlot): Ditto.
            (KWQSlot::call): Ditto.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2557 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index a03c165..a9ae789 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,36 @@
+2002-11-04  Darin Adler  <darin at apple.com>
+
+	- fixed 3091714 -- reproducible assert cachedObject->response
+	in KWQCheckCacheObjectStatus
+
+        * khtml/misc/loader.cpp: (Loader::slotFinished):
+	For APPLE_CHANGES, don't finish the load if it's an error.
+
+        * kwq/KWQResourceLoader.mm:
+        (-[KWQResourceLoader finishJobAndHandle]): Shared code for the
+	three following methods.
+        (-[KWQResourceLoader cancel]): Use setError(1) again instead of
+	just keeping the load around forever.
+        (-[KWQResourceLoader reportError]): Ditto.
+        (-[KWQResourceLoader finish]): Use finishJobAndHandle to share
+	code with the two above.
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::init): Put the slotLoaderRequestStarted and
+	slotLoaderRequestDone connect lines inside ifdefs.
+        (KHTMLPart::~KHTMLPart): Same for disconnect.
+
+        * kwq/KWQSignal.h: Remove code for the DocLoader signals.
+        * kwq/KWQSignal.mm: (KWQSignal::call): Ditto.
+        * kwq/KWQSignalStubs.mm:
+        (Loader::requestDone): Ditto.
+        (Loader::requestFailed): Ditto.
+        (Loader::requestStarted): Ditto.
+        * kwq/KWQSlot.h: Ditto.
+        * kwq/KWQSlot.mm:
+        (KWQSlot::KWQSlot): Ditto.
+        (KWQSlot::call): Ditto.
+
 2002-11-04  Maciej Stachowiak  <mjs at apple.com>
 
 	Changes to send NSEvents all the way through WebCore and then pass
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index a03c165..a9ae789 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,36 @@
+2002-11-04  Darin Adler  <darin at apple.com>
+
+	- fixed 3091714 -- reproducible assert cachedObject->response
+	in KWQCheckCacheObjectStatus
+
+        * khtml/misc/loader.cpp: (Loader::slotFinished):
+	For APPLE_CHANGES, don't finish the load if it's an error.
+
+        * kwq/KWQResourceLoader.mm:
+        (-[KWQResourceLoader finishJobAndHandle]): Shared code for the
+	three following methods.
+        (-[KWQResourceLoader cancel]): Use setError(1) again instead of
+	just keeping the load around forever.
+        (-[KWQResourceLoader reportError]): Ditto.
+        (-[KWQResourceLoader finish]): Use finishJobAndHandle to share
+	code with the two above.
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::init): Put the slotLoaderRequestStarted and
+	slotLoaderRequestDone connect lines inside ifdefs.
+        (KHTMLPart::~KHTMLPart): Same for disconnect.
+
+        * kwq/KWQSignal.h: Remove code for the DocLoader signals.
+        * kwq/KWQSignal.mm: (KWQSignal::call): Ditto.
+        * kwq/KWQSignalStubs.mm:
+        (Loader::requestDone): Ditto.
+        (Loader::requestFailed): Ditto.
+        (Loader::requestStarted): Ditto.
+        * kwq/KWQSlot.h: Ditto.
+        * kwq/KWQSlot.mm:
+        (KWQSlot::KWQSlot): Ditto.
+        (KWQSlot::call): Ditto.
+
 2002-11-04  Maciej Stachowiak  <mjs at apple.com>
 
 	Changes to send NSEvents all the way through WebCore and then pass
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index a03c165..a9ae789 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,36 @@
+2002-11-04  Darin Adler  <darin at apple.com>
+
+	- fixed 3091714 -- reproducible assert cachedObject->response
+	in KWQCheckCacheObjectStatus
+
+        * khtml/misc/loader.cpp: (Loader::slotFinished):
+	For APPLE_CHANGES, don't finish the load if it's an error.
+
+        * kwq/KWQResourceLoader.mm:
+        (-[KWQResourceLoader finishJobAndHandle]): Shared code for the
+	three following methods.
+        (-[KWQResourceLoader cancel]): Use setError(1) again instead of
+	just keeping the load around forever.
+        (-[KWQResourceLoader reportError]): Ditto.
+        (-[KWQResourceLoader finish]): Use finishJobAndHandle to share
+	code with the two above.
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::init): Put the slotLoaderRequestStarted and
+	slotLoaderRequestDone connect lines inside ifdefs.
+        (KHTMLPart::~KHTMLPart): Same for disconnect.
+
+        * kwq/KWQSignal.h: Remove code for the DocLoader signals.
+        * kwq/KWQSignal.mm: (KWQSignal::call): Ditto.
+        * kwq/KWQSignalStubs.mm:
+        (Loader::requestDone): Ditto.
+        (Loader::requestFailed): Ditto.
+        (Loader::requestStarted): Ditto.
+        * kwq/KWQSlot.h: Ditto.
+        * kwq/KWQSlot.mm:
+        (KWQSlot::KWQSlot): Ditto.
+        (KWQSlot::call): Ditto.
+
 2002-11-04  Maciej Stachowiak  <mjs at apple.com>
 
 	Changes to send NSEvents all the way through WebCore and then pass
diff --git a/WebCore/khtml/khtml_part.cpp b/WebCore/khtml/khtml_part.cpp
index 41e2233..9af325a 100644
--- a/WebCore/khtml/khtml_part.cpp
+++ b/WebCore/khtml/khtml_part.cpp
@@ -223,6 +223,10 @@ void KHTMLPart::init( KHTMLView *view, GUIProfile prof )
   d->m_bJavaEnabled = KHTMLFactory::defaultHTMLSettings()->isJavaEnabled();
   d->m_bPluginsEnabled = KHTMLFactory::defaultHTMLSettings()->isPluginsEnabled();
 
+#if APPLE_CHANGES
+  kwq = new KWQKHTMLPart(this);
+#endif
+
 #if !APPLE_CHANGES
   connect( this, SIGNAL( completed() ),
            this, SLOT( updateActions() ) );
@@ -232,11 +236,6 @@ void KHTMLPart::init( KHTMLView *view, GUIProfile prof )
            this, SLOT( updateActions() ) );
 
   d->m_popupMenuXML = KXMLGUIFactory::readConfigFile( locate( "data", "khtml/khtml_popupmenu.rc", KHTMLFactory::instance() ) );
-#endif
-
-#if APPLE_CHANGES
-  kwq = new KWQKHTMLPart(this);
-#endif
 
   connect( khtml::Cache::loader(), SIGNAL( requestStarted( khtml::DocLoader*, khtml::CachedObject* ) ),
            this, SLOT( slotLoaderRequestStarted( khtml::DocLoader*, khtml::CachedObject* ) ) );
@@ -244,6 +243,7 @@ void KHTMLPart::init( KHTMLView *view, GUIProfile prof )
            this, SLOT( slotLoaderRequestDone( khtml::DocLoader*, khtml::CachedObject *) ) );
   connect( khtml::Cache::loader(), SIGNAL( requestFailed( khtml::DocLoader*, khtml::CachedObject *) ),
            this, SLOT( slotLoaderRequestDone( khtml::DocLoader*, khtml::CachedObject *) ) );
+#endif
 
   findTextBegin(); //reset find variables
 
@@ -278,12 +278,14 @@ KHTMLPart::~KHTMLPart()
   if (!d->m_bComplete)
     closeURL();
 
+#if !APPLE_CHANGES
   disconnect( khtml::Cache::loader(), SIGNAL( requestStarted( khtml::DocLoader*, khtml::CachedObject* ) ),
            this, SLOT( slotLoaderRequestStarted( khtml::DocLoader*, khtml::CachedObject* ) ) );
   disconnect( khtml::Cache::loader(), SIGNAL( requestDone( khtml::DocLoader*, khtml::CachedObject *) ),
            this, SLOT( slotLoaderRequestDone( khtml::DocLoader*, khtml::CachedObject *) ) );
   disconnect( khtml::Cache::loader(), SIGNAL( requestFailed( khtml::DocLoader*, khtml::CachedObject *) ),
            this, SLOT( slotLoaderRequestDone( khtml::DocLoader*, khtml::CachedObject *) ) );
+#endif
 
   clear();
 
@@ -1508,20 +1510,18 @@ void KHTMLPart::slotFinishedParsing()
   checkCompleted();
 }
 
+#if !APPLE_CHANGES
+
 void KHTMLPart::slotLoaderRequestStarted( khtml::DocLoader* dl, khtml::CachedObject *obj )
 {
   if ( obj && obj->type() == khtml::CachedObject::Image && d->m_doc && d->m_doc->docLoader() == dl ) {
     KHTMLPart* p = this;
     while ( p ) {
-#if !APPLE_CHANGES
       KHTMLPart* op = p;
-#endif
       p->d->m_totalObjectCount++;
       p = p->parentPart();
-#if !APPLE_CHANGES
       if ( !p && d->m_loadedObjects <= d->m_totalObjectCount )
         QTimer::singleShot( 200, op, SLOT( slotProgressUpdate() ) );
-#endif
     }
   }
 }
@@ -1531,23 +1531,17 @@ void KHTMLPart::slotLoaderRequestDone( khtml::DocLoader* dl, khtml::CachedObject
   if ( obj && obj->type() == khtml::CachedObject::Image && d->m_doc && d->m_doc->docLoader() == dl ) {
     KHTMLPart* p = this;
     while ( p ) {
-#if !APPLE_CHANGES
       KHTMLPart* op = p;
-#endif
       p->d->m_loadedObjects++;
       p = p->parentPart();
-#if !APPLE_CHANGES
       if ( !p && d->m_loadedObjects <= d->m_totalObjectCount && d->m_jobPercent >= 100 )
         QTimer::singleShot( 200, op, SLOT( slotProgressUpdate() ) );
-#endif
     }
   }
 
   checkCompleted();
 }
 
-#if !APPLE_CHANGES
-
 void KHTMLPart::slotProgressUpdate()
 {
   int percent;
diff --git a/WebCore/khtml/misc/loader.cpp b/WebCore/khtml/misc/loader.cpp
index c8bfc17..c767390 100644
--- a/WebCore/khtml/misc/loader.cpp
+++ b/WebCore/khtml/misc/loader.cpp
@@ -1223,6 +1223,10 @@ kdDebug(6060) << "Loader::slotFinished, url = " << j->url().url() << " expires "
       r->object->setExpireDate(expireDate, false);
   }
 
+#if APPLE_CHANGES
+  // We don't want to ever finish the load in the case of an error because we don't want them cached.
+  if (!j->error())
+#endif
   r->object->finish();
 
 #ifdef CACHE_DEBUG
diff --git a/WebCore/kwq/KWQResourceLoader.mm b/WebCore/kwq/KWQResourceLoader.mm
index 8bd1a8e..0238462 100644
--- a/WebCore/kwq/KWQResourceLoader.mm
+++ b/WebCore/kwq/KWQResourceLoader.mm
@@ -78,7 +78,7 @@ using KIO::TransferJob;
     [handle release];
 }
 
-- (void)cancel
+- (void)finishJobAndHandle
 {
     TransferJob *job = _job;
     id <WebCoreResourceHandle> handle = _handle;
@@ -86,31 +86,33 @@ using KIO::TransferJob;
     _handle = nil;
 
     if (job) {
-        job->setError(1);
-        job->setLoader(nil);
+        _loader->slotFinished(job);
     }
+    delete job;
     [handle release];
 }
 
+- (void)cancel
+{
+    if (_job) {
+        _job->setError(1);
+    }
+    [self finishJobAndHandle];
+}
+
 - (void)reportError
 {
+    ASSERT(_job);
+    ASSERT(_handle);
     _job->setError(1);
-    [self finish];
+    [self finishJobAndHandle];
 }
 
 - (void)finish
 {
     ASSERT(_job);
     ASSERT(_handle);
-
-    TransferJob *job = _job;
-    id <WebCoreResourceHandle> handle = _handle;
-    _job = 0;
-    _handle = nil;
-
-    _loader->slotFinished(job);
-    delete job;
-    [handle release];
+    [self finishJobAndHandle];
 }
 
 @end
diff --git a/WebCore/kwq/KWQSignal.h b/WebCore/kwq/KWQSignal.h
index 05d0a4c..4be7555 100644
--- a/WebCore/kwq/KWQSignal.h
+++ b/WebCore/kwq/KWQSignal.h
@@ -42,7 +42,6 @@ public:
     void call(int) const;
     void call(const QString &) const;
     void call(KIO::Job *) const;
-    void call(khtml::DocLoader *, khtml::CachedObject *) const;
 
 private:
     // forbid copying and assignment
diff --git a/WebCore/kwq/KWQSignal.mm b/WebCore/kwq/KWQSignal.mm
index 8f7e05e..ec21627 100644
--- a/WebCore/kwq/KWQSignal.mm
+++ b/WebCore/kwq/KWQSignal.mm
@@ -30,9 +30,6 @@
 
 using KIO::Job;
 
-using khtml::CachedObject;
-using khtml::DocLoader;
-
 KWQSignal::KWQSignal(QObject *object, const char *name)
     : _object(object), _next(object->_signalListHead), _name(name)
 {
@@ -131,15 +128,3 @@ void KWQSignal::call(Job *j) const
         }
     }
 }
-
-void KWQSignal::call(DocLoader *l, CachedObject *o) const
-{
-    if (!_object->_signalsBlocked) {
-        KWQObjectSenderScope senderScope(_object);
-        QValueList<KWQSlot> copiedSlots(_slots);
-        QValueListConstIterator<KWQSlot> end = copiedSlots.end();
-        for (QValueListConstIterator<KWQSlot> it = copiedSlots.begin(); it != end; ++it) {
-            (*it).call(l, o);
-        }
-    }
-}
diff --git a/WebCore/kwq/KWQSignalStubs.mm b/WebCore/kwq/KWQSignalStubs.mm
index 5ebb7ea..5314fe6 100644
--- a/WebCore/kwq/KWQSignalStubs.mm
+++ b/WebCore/kwq/KWQSignalStubs.mm
@@ -39,17 +39,14 @@ void KHTMLView::cleared()
 
 void Loader::requestDone(DocLoader *l, CachedObject *o)
 {
-    kwq->_requestDone.call(l, o);
 }
 
 void Loader::requestFailed(DocLoader *l, CachedObject *o)
 {
-    kwq->_requestFailed.call(l, o);
 }
 
 void Loader::requestStarted(DocLoader *l, CachedObject *o)
 {
-    kwq->_requestStarted.call(l, o);
 }
 
 Tokenizer::Tokenizer()
diff --git a/WebCore/kwq/KWQSlot.h b/WebCore/kwq/KWQSlot.h
index 334272f..0e35b8d 100644
--- a/WebCore/kwq/KWQSlot.h
+++ b/WebCore/kwq/KWQSlot.h
@@ -34,11 +34,6 @@ namespace KIO {
     class Job;
 }
 
-namespace khtml {
-    class CachedObject;
-    class DocLoader;
-}
-
 // Like strcmp, but ignores spaces.
 bool KWQNamesMatch(const char *a, const char *b);
 
@@ -55,7 +50,6 @@ public:
     void call(int) const;
     void call(const QString &) const;
     void call(KIO::Job *) const;
-    void call(khtml::DocLoader *, khtml::CachedObject *) const;
     
     friend bool operator==(const KWQSlot &, const KWQSlot &);
 
diff --git a/WebCore/kwq/KWQSlot.mm b/WebCore/kwq/KWQSlot.mm
index 7ec58e8..e4ca0f3 100644
--- a/WebCore/kwq/KWQSlot.mm
+++ b/WebCore/kwq/KWQSlot.mm
@@ -53,8 +53,6 @@ enum FunctionNumber {
     slotChildStarted,
     slotClicked,
     slotFinishedParsing,
-    slotLoaderRequestDone,
-    slotLoaderRequestStarted,
     slotParentCompleted,
     slotParentDestroyed,
     slotRedirect,
@@ -90,12 +88,6 @@ KWQSlot::KWQSlot(QObject *object, const char *member) : m_object(0)
     } else if (KWQNamesMatch(member, SLOT(slotFinishedParsing()))) {
         ASSERT(dynamic_cast<KHTMLPart *>(object));
         m_function = slotFinishedParsing;
-    } else if (KWQNamesMatch(member, SLOT(slotLoaderRequestDone(khtml::DocLoader *, khtml::CachedObject *)))) {
-        ASSERT(dynamic_cast<KHTMLPart *>(object));
-        m_function = slotLoaderRequestDone;
-    } else if (KWQNamesMatch(member, SLOT(slotLoaderRequestStarted(khtml::DocLoader *, khtml::CachedObject *)))) {
-        ASSERT(dynamic_cast<KHTMLPart *>(object));
-        m_function = slotLoaderRequestStarted;
     } else if (KWQNamesMatch(member, SLOT(slotParentCompleted()))) {
         ASSERT(dynamic_cast<KHTMLPart *>(object));
         m_function = slotParentCompleted;
@@ -238,24 +230,6 @@ void KWQSlot::call(Job *job) const
     call();
 }
 
-void KWQSlot::call(DocLoader *loader, CachedObject *cachedObject) const
-{
-    if (!m_object) {
-        return;
-    }
-    
-    switch (m_function) {
-        case slotLoaderRequestDone:
-            static_cast<KHTMLPart *>(m_object.pointer())->slotLoaderRequestDone(loader, cachedObject);
-            return;
-        case slotLoaderRequestStarted:
-            static_cast<KHTMLPart *>(m_object.pointer())->slotLoaderRequestStarted(loader, cachedObject);
-            return;
-    }
-    
-    call();
-}
-
 bool operator==(const KWQSlot &a, const KWQSlot &b)
 {
     return a.m_object == b.m_object && (a.m_object == 0 || a.m_function == b.m_function);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list