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

mjs mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:02:31 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit d4a855359fb1720bd04cbeb3b54b725da3d87c57
Author: mjs <mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 17 00:36:06 2003 +0000

            Reviewed by John.
    
    	More exception blocking.
    
            * kwq/KWQFont.mm:
            (QFont::isFixedPitch):
            (QFont::getNSFont):
            * kwq/KWQKJobClasses.mm:
            (KIO::TransferJob::~TransferJob):
            * kwq/KWQLoader.mm:
            (KWQServeRequest):
            (KWQCheckIfReloading):
            (KWQCheckCacheObjectStatus):
            (KWQRetainResponse):
            (KWQReleaseResponse):
            (KWQResponseMIMEType):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@5199 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 21e4b12..a9a44ea 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,21 @@
+2003-10-16  Maciej Stachowiak  <mjs at apple.com>
+
+        Reviewed by John.
+
+	More exception blocking.
+	
+        * kwq/KWQFont.mm:
+        (QFont::isFixedPitch):
+        (QFont::getNSFont):
+        * kwq/KWQKJobClasses.mm:
+        (KIO::TransferJob::~TransferJob):
+        * kwq/KWQLoader.mm:
+        (KWQServeRequest):
+        (KWQCheckIfReloading):
+        (KWQCheckCacheObjectStatus):
+        (KWQRetainResponse):
+        (KWQReleaseResponse):
+        (KWQResponseMIMEType):
 
 === Safari-110 ===
 
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 21e4b12..a9a44ea 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,21 @@
+2003-10-16  Maciej Stachowiak  <mjs at apple.com>
+
+        Reviewed by John.
+
+	More exception blocking.
+	
+        * kwq/KWQFont.mm:
+        (QFont::isFixedPitch):
+        (QFont::getNSFont):
+        * kwq/KWQKJobClasses.mm:
+        (KIO::TransferJob::~TransferJob):
+        * kwq/KWQLoader.mm:
+        (KWQServeRequest):
+        (KWQCheckIfReloading):
+        (KWQCheckCacheObjectStatus):
+        (KWQRetainResponse):
+        (KWQReleaseResponse):
+        (KWQResponseMIMEType):
 
 === Safari-110 ===
 
diff --git a/WebCore/kwq/KWQFont.mm b/WebCore/kwq/KWQFont.mm
index 5bfb3cb..3e18c88 100644
--- a/WebCore/kwq/KWQFont.mm
+++ b/WebCore/kwq/KWQFont.mm
@@ -25,6 +25,7 @@
 
 #import "KWQFont.h"
 
+#import "KWQExceptions.h"
 #import "KWQString.h"
 #import "WebCoreTextRendererFactory.h"
 
@@ -146,7 +147,11 @@ bool QFont::bold() const
 
 bool QFont::isFixedPitch() const
 {
-    return [[WebCoreTextRendererFactory sharedFactory] isFontFixedPitch: getNSFont()];
+    volatile bool isFixed = false;
+    KWQ_BLOCK_NS_EXCEPTIONS;
+    isFixed = [[WebCoreTextRendererFactory sharedFactory] isFontFixedPitch: getNSFont()];
+    KWQ_UNBLOCK_NS_EXCEPTIONS;
+    return isFixed;
 }
 
 
@@ -162,10 +167,12 @@ NSFont *QFont::getNSFont() const
 {
     if (!_NSFont) {
         CREATE_FAMILY_ARRAY(*this, families);
+	KWQ_BLOCK_NS_EXCEPTIONS;
         _NSFont = [[[WebCoreTextRendererFactory sharedFactory] 
             fontWithFamilies:families
                       traits:getNSTraits() 
                         size:getNSSize()] retain];
+	KWQ_UNBLOCK_NS_EXCEPTIONS;
     }
     return _NSFont;
 }
diff --git a/WebCore/kwq/KWQKJobClasses.mm b/WebCore/kwq/KWQKJobClasses.mm
index eb951f8..c479191 100644
--- a/WebCore/kwq/KWQKJobClasses.mm
+++ b/WebCore/kwq/KWQKJobClasses.mm
@@ -25,12 +25,18 @@
 
 #import "KWQLogging.h"
 
+#import "KWQExceptions.h"
+#import "KWQKJobClasses.h"
 #import "KWQResourceLoader.h"
 #import "KWQString.h"
-#import "KWQKJobClasses.h"
 
 namespace KIO {
 
+    // The allocations and releases in TransferJobPrivate are
+    // definitely Cocoa-exception-free (either simple Foundation
+    // classes or our own KWQResourceLoader which avoides doing work
+    // in dealloc
+
 class TransferJobPrivate
 {
 public:
@@ -66,7 +72,10 @@ TransferJob::TransferJob(const KURL &url, const QByteArray &postData, bool showP
 
 TransferJob::~TransferJob()
 {
+    // This will cancel the handle, and who knows what that could do
+    KWQ_BLOCK_NS_EXCEPTIONS;
     [d->loader jobWillBeDeallocated];
+    KWQ_UNBLOCK_NS_EXCEPTIONS;
     delete d;
 }
 
diff --git a/WebCore/kwq/KWQLoader.mm b/WebCore/kwq/KWQLoader.mm
index 2a085a8..c6ef33f 100644
--- a/WebCore/kwq/KWQLoader.mm
+++ b/WebCore/kwq/KWQLoader.mm
@@ -25,12 +25,13 @@
 
 #import "KWQLoader.h"
 
-#import "khtml_part.h"
+#import "KWQExceptions.h"
 #import "KWQKJobClasses.h"
 #import "KWQLogging.h"
 #import "KWQResourceLoader.h"
-#import "loader.h"
 #import "WebCoreBridge.h"
+#import "khtml_part.h"
+#import "loader.h"
 
 using khtml::Cache;
 using khtml::CachedObject;
@@ -48,10 +49,15 @@ bool KWQServeRequest(Loader *loader, Request *request, TransferJob *job)
     
     WebCoreBridge *bridge = static_cast<KWQKHTMLPart *>(request->m_docLoader->part())->bridge();
 
+    volatile id <WebCoreResourceHandle> handle = nil;
+
+    KWQ_BLOCK_NS_EXCEPTIONS;
     KWQResourceLoader *resourceLoader = [[KWQResourceLoader alloc] initWithLoader:loader job:job];
-    id <WebCoreResourceHandle> handle = [bridge startLoadingResource:resourceLoader withURL:job->url().getNSURL()];
+    handle = [bridge startLoadingResource:resourceLoader withURL:job->url().getNSURL()];
     [resourceLoader setHandle:handle];
     [resourceLoader release];
+    KWQ_UNBLOCK_NS_EXCEPTIONS;
+
 
     return handle != nil;
 }
@@ -63,7 +69,13 @@ int KWQNumberOfPendingOrLoadingRequests(khtml::DocLoader *dl)
 
 bool KWQCheckIfReloading(DocLoader *loader)
 {
-    return [static_cast<KWQKHTMLPart *>(loader->part())->bridge() isReloading];
+    volatile bool reloading = false;
+
+    KWQ_BLOCK_NS_EXCEPTIONS;
+    reloading = [static_cast<KWQKHTMLPart *>(loader->part())->bridge() isReloading];
+    KWQ_UNBLOCK_NS_EXCEPTIONS;
+
+    return reloading;
 }
 
 void KWQCheckCacheObjectStatus(DocLoader *loader, CachedObject *cachedObject)
@@ -88,19 +100,25 @@ void KWQCheckCacheObjectStatus(DocLoader *loader, CachedObject *cachedObject)
     // Notify the caller that we "loaded".
     WebCoreBridge *bridge = static_cast<KWQKHTMLPart *>(loader->part())->bridge();
     CachedImage *cachedImage = dynamic_cast<CachedImage *>(cachedObject);
+    KWQ_BLOCK_NS_EXCEPTIONS;
     [bridge objectLoadedFromCacheWithURL:KURL(cachedObject->url().string()).getNSURL()
                                 response:(id)cachedObject->response()
                                     size:cachedImage ? cachedImage->dataSize() : cachedObject->size()];
+    KWQ_UNBLOCK_NS_EXCEPTIONS;
 }
 
 void KWQRetainResponse(void *response)
 {
+    // There's no way a retain can raise
     [(id)response retain];
 }
 
 void KWQReleaseResponse(void *response)
 {
+    // A release could raise if it deallocs, though...
+    KWQ_BLOCK_NS_EXCEPTIONS;
     [(id)response release];
+    KWQ_UNBLOCK_NS_EXCEPTIONS;
 }
 
 @interface NSObject (WebPrivateResponse)
@@ -109,7 +127,13 @@ void KWQReleaseResponse(void *response)
 
 void *KWQResponseMIMEType(void *response)
 {
-    return [(id)response MIMEType];
+    volatile void * volatile result = NULL;
+
+    KWQ_BLOCK_NS_EXCEPTIONS;
+    result = [(id)response MIMEType];
+    KWQ_UNBLOCK_NS_EXCEPTIONS;
+
+    return (void *)result;
 }
 
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list