Title: [149245] trunk/Source/WebCore
Revision
149245
Author
[email protected]
Date
2013-04-27 13:55:45 -0700 (Sat, 27 Apr 2013)

Log Message

Remove two more StorageTask types
https://bugs.webkit.org/show_bug.cgi?id=115312

Reviewed by Dean Jackson.

* storage/StorageTask.cpp:
(WebCore::StorageTask::performTask):
* storage/StorageTask.h:
* storage/StorageTracker.cpp:
(WebCore::StorageTracker::setOriginDetails):
(WebCore::StorageTracker::deleteOrigin):
* storage/StorageTracker.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (149244 => 149245)


--- trunk/Source/WebCore/ChangeLog	2013-04-27 20:44:04 UTC (rev 149244)
+++ trunk/Source/WebCore/ChangeLog	2013-04-27 20:55:45 UTC (rev 149245)
@@ -1,5 +1,20 @@
 2013-04-27  Anders Carlsson  <[email protected]>
 
+        Remove two more StorageTask types
+        https://bugs.webkit.org/show_bug.cgi?id=115312
+
+        Reviewed by Dean Jackson.
+
+        * storage/StorageTask.cpp:
+        (WebCore::StorageTask::performTask):
+        * storage/StorageTask.h:
+        * storage/StorageTracker.cpp:
+        (WebCore::StorageTracker::setOriginDetails):
+        (WebCore::StorageTracker::deleteOrigin):
+        * storage/StorageTracker.h:
+
+2013-04-27  Anders Carlsson  <[email protected]>
+
         Get rid of more uses of StorageTask
         https://bugs.webkit.org/show_bug.cgi?id=115311
 

Modified: trunk/Source/WebCore/storage/StorageTask.cpp (149244 => 149245)


--- trunk/Source/WebCore/storage/StorageTask.cpp	2013-04-27 20:44:04 UTC (rev 149244)
+++ trunk/Source/WebCore/storage/StorageTask.cpp	2013-04-27 20:55:45 UTC (rev 149245)
@@ -40,21 +40,6 @@
     ASSERT(m_type == Dispatch);
 }
 
-StorageTask::StorageTask(Type type, const String& originIdentifier)
-    : m_type(type)
-    , m_originIdentifier(originIdentifier)
-{
-    ASSERT(m_type == DeleteOrigin);
-}
-
-StorageTask::StorageTask(Type type, const String& originIdentifier, const String& databaseFilename)
-    : m_type(type)
-    , m_originIdentifier(originIdentifier)
-    , m_databaseFilename(databaseFilename)
-{
-    ASSERT(m_type == SetOriginDetails);
-}
-
 StorageTask::~StorageTask()
 {
 }
@@ -65,12 +50,6 @@
         case Dispatch:
             m_function();
             break;
-        case SetOriginDetails:
-            StorageTracker::tracker().syncSetOriginDetails(m_originIdentifier, m_databaseFilename);
-            break;
-        case DeleteOrigin:
-            StorageTracker::tracker().syncDeleteOrigin(m_originIdentifier);
-            break;
     }
 }
 

Modified: trunk/Source/WebCore/storage/StorageTask.h (149244 => 149245)


--- trunk/Source/WebCore/storage/StorageTask.h	2013-04-27 20:44:04 UTC (rev 149244)
+++ trunk/Source/WebCore/storage/StorageTask.h	2013-04-27 20:55:45 UTC (rev 149245)
@@ -38,25 +38,19 @@
     class StorageTask {
         WTF_MAKE_NONCOPYABLE(StorageTask); WTF_MAKE_FAST_ALLOCATED;
     public:
-        enum Type { Dispatch, SetOriginDetails, DeleteOrigin };
+        enum Type { Dispatch };
 
         ~StorageTask();
 
         static PassOwnPtr<StorageTask> createDispatch(const Function<void()>& function) { return adoptPtr(new StorageTask(Dispatch, function)); }
-        static PassOwnPtr<StorageTask> createSetOriginDetails(const String& originIdentifier, const String& databaseFilename) { return adoptPtr(new StorageTask(SetOriginDetails, originIdentifier, databaseFilename)); }
-        static PassOwnPtr<StorageTask> createDeleteOrigin(const String& originIdentifier) { return adoptPtr(new StorageTask(DeleteOrigin, originIdentifier)); }
 
         void performTask();
 
     private:
         StorageTask(Type, const Function<void()>&);
-        StorageTask(Type, const String& originIdentifier);
-        StorageTask(Type, const String& originIdentifier, const String& databaseFilename);
 
         Type m_type;
         Function<void ()> m_function;
-        String m_originIdentifier;
-        String m_databaseFilename;
     };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/storage/StorageTracker.cpp (149244 => 149245)


--- trunk/Source/WebCore/storage/StorageTracker.cpp	2013-04-27 20:44:04 UTC (rev 149244)
+++ trunk/Source/WebCore/storage/StorageTracker.cpp	2013-04-27 20:55:45 UTC (rev 149245)
@@ -302,25 +302,17 @@
         m_originSet.add(originIdentifier);
     }
 
-    OwnPtr<StorageTask> task = StorageTask::createSetOriginDetails(originIdentifier.isolatedCopy(), databaseFile);
+    Function<void ()> function = bind(&StorageTracker::syncSetOriginDetails, this, originIdentifier.isolatedCopy(), databaseFile.isolatedCopy());
 
     if (isMainThread()) {
         ASSERT(m_thread);
-        m_thread->scheduleTask(task.release());
-    } else 
-        callOnMainThread(scheduleTask, reinterpret_cast<void*>(task.leakPtr()));
+        m_thread->dispatch(function);
+    } else {
+        // FIXME: This weird ping-ponging was done to fix a deadlock. We should figure out a cleaner way to avoid it instead.
+        callOnMainThread(bind(&StorageThread::dispatch, m_thread.get(), function));
+    }
 }
 
-void StorageTracker::scheduleTask(void* taskIn)
-{
-    ASSERT(isMainThread());
-    ASSERT(StorageTracker::tracker().m_thread);
-    
-    OwnPtr<StorageTask> task = adoptPtr(reinterpret_cast<StorageTask*>(taskIn));
-
-    StorageTracker::tracker().m_thread->scheduleTask(task.release());
-}
-
 void StorageTracker::syncSetOriginDetails(const String& originIdentifier, const String& databaseFile)
 {
     ASSERT(!isMainThread());
@@ -483,8 +475,8 @@
         willDeleteOrigin(originId);
         m_originSet.remove(originId);
     }
-    
-    m_thread->scheduleTask(StorageTask::createDeleteOrigin(originId));
+
+    m_thread->dispatch(bind(&StorageTracker::syncDeleteOrigin, this, originId.isolatedCopy()));
 }
 
 void StorageTracker::syncDeleteOrigin(const String& originIdentifier)

Modified: trunk/Source/WebCore/storage/StorageTracker.h (149244 => 149245)


--- trunk/Source/WebCore/storage/StorageTracker.h	2013-04-27 20:44:04 UTC (rev 149244)
+++ trunk/Source/WebCore/storage/StorageTracker.h	2013-04-27 20:55:45 UTC (rev 149245)
@@ -79,7 +79,6 @@
 
 private:
     explicit StorageTracker(const String& storagePath);
-    static void scheduleTask(void*);
 
     void internalInitialize();
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to