[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

abarth at webkit.org abarth at webkit.org
Wed Dec 22 12:37:38 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 31f898df3325bdfc840cf46869f6990d615f04e7
Author: abarth at webkit.org <abarth at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Aug 26 07:27:51 2010 +0000

    2010-08-26  Adam Barth  <abarth at webkit.org>
    
            Reviewed by Sam Weinig.
    
            Deploy adoptPtr to WebCore/loader
            https://bugs.webkit.org/show_bug.cgi?id=44591
    
            This patch covers the easy cases.  There are a handful of tougher cases
            that I'm leaving to a future patch.  I filed one bug about a possible
            memory leak and I emailed webkit-dev about some infrastructure we'll
            need to tackle some of the harder cases.
    
            * loader/CrossOriginAccessControl.cpp:
            (WebCore::createAllowedCrossOriginResponseHeadersSet):
            (WebCore::isOnAccessControlResponseHeaderWhitelist):
            * loader/DocLoader.cpp:
            (WebCore::DocLoader::requestPreload):
            * loader/DocumentLoader.cpp:
            (WebCore::DocumentLoader::DocumentLoader):
            (WebCore::DocumentLoader::addAllArchiveResources):
            (WebCore::DocumentLoader::addArchiveResource):
            * loader/DocumentThreadableLoader.cpp:
            (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
            (WebCore::DocumentThreadableLoader::didReceiveResponse):
            * loader/PingLoader.cpp:
            (WebCore::PingLoader::loadImage):
            * loader/ProgressTracker.cpp:
            (WebCore::ProgressTracker::incrementProgress):
            * loader/RedirectScheduler.cpp:
            (WebCore::RedirectScheduler::scheduleRedirect):
            (WebCore::RedirectScheduler::scheduleLocationChange):
            (WebCore::RedirectScheduler::scheduleFormSubmission):
            (WebCore::RedirectScheduler::scheduleRefresh):
            (WebCore::RedirectScheduler::scheduleHistoryNavigation):
            * loader/WorkerThreadableLoader.cpp:
            (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
            * loader/icon/IconDatabase.cpp:
            (WebCore::readySQLiteStatement):
            * loader/icon/IconLoader.cpp:
            (WebCore::IconLoader::create):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66083 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 046694d..54db900 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,44 @@
+2010-08-26  Adam Barth  <abarth at webkit.org>
+
+        Reviewed by Sam Weinig.
+
+        Deploy adoptPtr to WebCore/loader
+        https://bugs.webkit.org/show_bug.cgi?id=44591
+
+        This patch covers the easy cases.  There are a handful of tougher cases
+        that I'm leaving to a future patch.  I filed one bug about a possible
+        memory leak and I emailed webkit-dev about some infrastructure we'll
+        need to tackle some of the harder cases.
+
+        * loader/CrossOriginAccessControl.cpp:
+        (WebCore::createAllowedCrossOriginResponseHeadersSet):
+        (WebCore::isOnAccessControlResponseHeaderWhitelist):
+        * loader/DocLoader.cpp:
+        (WebCore::DocLoader::requestPreload):
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::DocumentLoader):
+        (WebCore::DocumentLoader::addAllArchiveResources):
+        (WebCore::DocumentLoader::addArchiveResource):
+        * loader/DocumentThreadableLoader.cpp:
+        (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
+        (WebCore::DocumentThreadableLoader::didReceiveResponse):
+        * loader/PingLoader.cpp:
+        (WebCore::PingLoader::loadImage):
+        * loader/ProgressTracker.cpp:
+        (WebCore::ProgressTracker::incrementProgress):
+        * loader/RedirectScheduler.cpp:
+        (WebCore::RedirectScheduler::scheduleRedirect):
+        (WebCore::RedirectScheduler::scheduleLocationChange):
+        (WebCore::RedirectScheduler::scheduleFormSubmission):
+        (WebCore::RedirectScheduler::scheduleRefresh):
+        (WebCore::RedirectScheduler::scheduleHistoryNavigation):
+        * loader/WorkerThreadableLoader.cpp:
+        (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
+        * loader/icon/IconDatabase.cpp:
+        (WebCore::readySQLiteStatement):
+        * loader/icon/IconLoader.cpp:
+        (WebCore::IconLoader::create):
+
 2010-08-26  Alejandro G. Castro  <alex at igalia.com>
 
         Reviewed by Dan Bernstein.
diff --git a/WebCore/loader/CrossOriginAccessControl.cpp b/WebCore/loader/CrossOriginAccessControl.cpp
index 630f2b7..f510704 100644
--- a/WebCore/loader/CrossOriginAccessControl.cpp
+++ b/WebCore/loader/CrossOriginAccessControl.cpp
@@ -71,9 +71,9 @@ bool isSimpleCrossOriginAccessRequest(const String& method, const HTTPHeaderMap&
 }
 
 typedef HashSet<String, CaseFoldingHash> HTTPHeaderSet;
-static HTTPHeaderSet* createAllowedCrossOriginResponseHeadersSet()
+static PassOwnPtr<HTTPHeaderSet> createAllowedCrossOriginResponseHeadersSet()
 {
-    HTTPHeaderSet* headerSet = new HashSet<String, CaseFoldingHash>;
+    OwnPtr<HTTPHeaderSet> headerSet = adoptPtr(new HashSet<String, CaseFoldingHash>);
     
     headerSet->add("cache-control");
     headerSet->add("content-language");
@@ -82,12 +82,12 @@ static HTTPHeaderSet* createAllowedCrossOriginResponseHeadersSet()
     headerSet->add("last-modified");
     headerSet->add("pragma");
 
-    return headerSet;
+    return headerSet.release();
 }
 
 bool isOnAccessControlResponseHeaderWhitelist(const String& name)
 {
-    AtomicallyInitializedStatic(HTTPHeaderSet*, allowedCrossOriginResponseHeaders = createAllowedCrossOriginResponseHeadersSet());
+    AtomicallyInitializedStatic(HTTPHeaderSet*, allowedCrossOriginResponseHeaders = createAllowedCrossOriginResponseHeadersSet().leakPtr());
 
     return allowedCrossOriginResponseHeaders->contains(name);
 }
diff --git a/WebCore/loader/DocLoader.cpp b/WebCore/loader/DocLoader.cpp
index 98ed03c..fb12861 100644
--- a/WebCore/loader/DocLoader.cpp
+++ b/WebCore/loader/DocLoader.cpp
@@ -426,7 +426,7 @@ void DocLoader::requestPreload(CachedResource::Type type, const String& url, con
     resource->increasePreloadCount();
 
     if (!m_preloads)
-        m_preloads.set(new ListHashSet<CachedResource*>);
+        m_preloads = adoptPtr(new ListHashSet<CachedResource*>);
     m_preloads->add(resource);
 
 #if PRELOAD_DEBUG
diff --git a/WebCore/loader/DocumentLoader.cpp b/WebCore/loader/DocumentLoader.cpp
index 9798642..cdc711c 100644
--- a/WebCore/loader/DocumentLoader.cpp
+++ b/WebCore/loader/DocumentLoader.cpp
@@ -87,7 +87,7 @@ DocumentLoader::DocumentLoader(const ResourceRequest& req, const SubstituteData&
     , m_substituteResourceDeliveryTimer(this, &DocumentLoader::substituteResourceDeliveryTimerFired)
     , m_didCreateGlobalHistoryEntry(false)
 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
-    , m_applicationCacheHost(new ApplicationCacheHost(this))
+    , m_applicationCacheHost(adoptPtr(new ApplicationCacheHost(this)))
 #endif
 {
 }
@@ -404,7 +404,7 @@ bool DocumentLoader::isLoadingInAPISense() const
 void DocumentLoader::addAllArchiveResources(Archive* archive)
 {
     if (!m_archiveResourceCollection)
-        m_archiveResourceCollection.set(new ArchiveResourceCollection);
+        m_archiveResourceCollection = adoptPtr(new ArchiveResourceCollection);
         
     ASSERT(archive);
     if (!archive)
@@ -418,7 +418,7 @@ void DocumentLoader::addAllArchiveResources(Archive* archive)
 void DocumentLoader::addArchiveResource(PassRefPtr<ArchiveResource> resource)
 {
     if (!m_archiveResourceCollection)
-        m_archiveResourceCollection.set(new ArchiveResourceCollection);
+        m_archiveResourceCollection = adoptPtr(new ArchiveResourceCollection);
         
     ASSERT(resource);
     if (!resource)
diff --git a/WebCore/loader/DocumentThreadableLoader.cpp b/WebCore/loader/DocumentThreadableLoader.cpp
index 16f114d..a792144 100644
--- a/WebCore/loader/DocumentThreadableLoader.cpp
+++ b/WebCore/loader/DocumentThreadableLoader.cpp
@@ -83,7 +83,7 @@ DocumentThreadableLoader::DocumentThreadableLoader(Document* document, Threadabl
     
     ASSERT(m_options.crossOriginRequestPolicy == UseAccessControl);
 
-    OwnPtr<ResourceRequest> crossOriginRequest(new ResourceRequest(request));
+    OwnPtr<ResourceRequest> crossOriginRequest = adoptPtr(new ResourceRequest(request));
     crossOriginRequest->removeCredentials();
     crossOriginRequest->setAllowCookies(m_options.allowCredentials);
 
@@ -195,7 +195,7 @@ void DocumentThreadableLoader::didReceiveResponse(SubresourceLoader* loader, con
             return;
         }
 
-        OwnPtr<CrossOriginPreflightResultCacheItem> preflightResult(new CrossOriginPreflightResultCacheItem(m_options.allowCredentials));
+        OwnPtr<CrossOriginPreflightResultCacheItem> preflightResult = adoptPtr(new CrossOriginPreflightResultCacheItem(m_options.allowCredentials));
         if (!preflightResult->parse(response, accessControlErrorDescription)
             || !preflightResult->allowsCrossOriginMethod(m_actualRequest->httpMethod(), accessControlErrorDescription)
             || !preflightResult->allowsCrossOriginHeaders(m_actualRequest->httpHeaderFields(), accessControlErrorDescription)) {
diff --git a/WebCore/loader/PingLoader.cpp b/WebCore/loader/PingLoader.cpp
index d2c6410..60c6f30 100644
--- a/WebCore/loader/PingLoader.cpp
+++ b/WebCore/loader/PingLoader.cpp
@@ -53,7 +53,7 @@ void PingLoader::loadImage(Frame* frame, const KURL& url)
     if (!SecurityOrigin::shouldHideReferrer(request.url(), frame->loader()->outgoingReferrer()))
         request.setHTTPReferrer(frame->loader()->outgoingReferrer());
     frame->loader()->addExtraFieldsToSubresourceRequest(request);
-    OwnPtr<PingLoader> pingLoader(new PingLoader(frame, request));
+    OwnPtr<PingLoader> pingLoader = adoptPtr(new PingLoader(frame, request));
     
     // Leak the ping loader, since it will kill itself as soon as it receives a response.
     PingLoader* leakedPingLoader = pingLoader.leakPtr();
diff --git a/WebCore/loader/ProgressTracker.cpp b/WebCore/loader/ProgressTracker.cpp
index 88231c8..7f61cd1 100644
--- a/WebCore/loader/ProgressTracker.cpp
+++ b/WebCore/loader/ProgressTracker.cpp
@@ -169,7 +169,7 @@ void ProgressTracker::incrementProgress(unsigned long identifier, const Resource
         item->bytesReceived = 0;
         item->estimatedLength = estimatedLength;
     } else
-        m_progressItems.set(identifier, new ProgressItem(estimatedLength));
+        m_progressItems.set(identifier, adoptPtr(new ProgressItem(estimatedLength)).leakPtr());
 }
 
 void ProgressTracker::incrementProgress(unsigned long identifier, const char*, int length)
diff --git a/WebCore/loader/RedirectScheduler.cpp b/WebCore/loader/RedirectScheduler.cpp
index 26d7787..d3b6c53 100644
--- a/WebCore/loader/RedirectScheduler.cpp
+++ b/WebCore/loader/RedirectScheduler.cpp
@@ -250,7 +250,7 @@ void RedirectScheduler::scheduleRedirect(double delay, const String& url)
 
     // We want a new back/forward list item if the refresh timeout is > 1 second.
     if (!m_redirect || delay <= m_redirect->delay())
-        schedule(new ScheduledRedirect(delay, url, true, delay <= 1, false));
+        schedule(adoptPtr(new ScheduledRedirect(delay, url, true, delay <= 1, false)));
 }
 
 bool RedirectScheduler::mustLockBackForwardList(Frame* targetFrame, bool wasUserGesture)
@@ -294,7 +294,7 @@ void RedirectScheduler::scheduleLocationChange(const String& url, const String&
     // This may happen when a frame changes the location of another frame.
     bool duringLoad = !loader->stateMachine()->committedFirstRealDocumentLoad();
 
-    schedule(new ScheduledLocationChange(url, referrer, lockHistory, lockBackForwardList, wasUserGesture, duringLoad));
+    schedule(adoptPtr(new ScheduledLocationChange(url, referrer, lockHistory, lockBackForwardList, wasUserGesture, duringLoad)));
 }
 
 void RedirectScheduler::scheduleFormSubmission(PassRefPtr<FormSubmission> submission)
@@ -314,7 +314,7 @@ void RedirectScheduler::scheduleFormSubmission(PassRefPtr<FormSubmission> submis
 
     bool lockBackForwardList = mustLockBackForwardList(m_frame, UserGestureIndicator::processingUserGesture()) || (submission->state()->formSubmissionTrigger() == SubmittedByJavaScript && m_frame->tree()->parent());
 
-    schedule(new ScheduledFormSubmission(submission, lockBackForwardList, duringLoad));
+    schedule(adoptPtr(new ScheduledFormSubmission(submission, lockBackForwardList, duringLoad)));
 }
 
 void RedirectScheduler::scheduleRefresh(bool wasUserGesture)
@@ -325,7 +325,7 @@ void RedirectScheduler::scheduleRefresh(bool wasUserGesture)
     if (url.isEmpty())
         return;
 
-    schedule(new ScheduledRefresh(url.string(), m_frame->loader()->outgoingReferrer(), wasUserGesture));
+    schedule(adoptPtr(new ScheduledRefresh(url.string(), m_frame->loader()->outgoingReferrer(), wasUserGesture)));
 }
 
 void RedirectScheduler::scheduleHistoryNavigation(int steps)
@@ -352,7 +352,7 @@ void RedirectScheduler::scheduleHistoryNavigation(int steps)
 #endif
     
     // In all other cases, schedule the history traversal to occur asynchronously.
-    schedule(new ScheduledHistoryNavigation(steps));
+    schedule(adoptPtr(new ScheduledHistoryNavigation(steps)));
 }
 
 void RedirectScheduler::timerFired(Timer<RedirectScheduler>*)
diff --git a/WebCore/loader/WorkerThreadableLoader.cpp b/WebCore/loader/WorkerThreadableLoader.cpp
index 4789a05..4d18c28 100644
--- a/WebCore/loader/WorkerThreadableLoader.cpp
+++ b/WebCore/loader/WorkerThreadableLoader.cpp
@@ -193,7 +193,7 @@ static void workerContextDidReceiveData(ScriptExecutionContext* context, RefPtr<
 
 void WorkerThreadableLoader::MainThreadBridge::didReceiveData(const char* data, int lengthReceived)
 {
-    OwnPtr<Vector<char> > vector(new Vector<char>(lengthReceived)); // needs to be an OwnPtr for usage with createCallbackTask.
+    OwnPtr<Vector<char> > vector = adoptPtr(new Vector<char>(lengthReceived)); // needs to be an OwnPtr for usage with createCallbackTask.
     memcpy(vector->data(), data, lengthReceived);
     m_loaderProxy.postTaskForModeToWorkerContext(createCallbackTask(&workerContextDidReceiveData, m_workerClientWrapper, vector.release()), m_taskMode);
 }
diff --git a/WebCore/loader/icon/IconDatabase.cpp b/WebCore/loader/icon/IconDatabase.cpp
index 4899055..7199bb0 100644
--- a/WebCore/loader/icon/IconDatabase.cpp
+++ b/WebCore/loader/icon/IconDatabase.cpp
@@ -1841,7 +1841,7 @@ inline void readySQLiteStatement(OwnPtr<SQLiteStatement>& statement, SQLiteDatab
         statement.set(0);
     }
     if (!statement) {
-        statement.set(new SQLiteStatement(db, str));
+        statement = adoptPtr(new SQLiteStatement(db, str));
         if (statement->prepare() != SQLResultOk)
             LOG_ERROR("Preparing statement %s failed", str.ascii().data());
     }
diff --git a/WebCore/loader/icon/IconLoader.cpp b/WebCore/loader/icon/IconLoader.cpp
index 6e2762f..877c80e 100644
--- a/WebCore/loader/icon/IconLoader.cpp
+++ b/WebCore/loader/icon/IconLoader.cpp
@@ -51,7 +51,7 @@ IconLoader::IconLoader(Frame* frame)
 
 PassOwnPtr<IconLoader> IconLoader::create(Frame* frame)
 {
-    return new IconLoader(frame);
+    return adoptPtr(new IconLoader(frame));
 }
 
 IconLoader::~IconLoader()

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list